それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php

php のエルビス演算子を初期化以外の用途で使ったら・・・

php

エルビス演算子が便利だけど。 三項演算子の省略形 elbis operator が便利だけど int(10) //} 変数初期化チェックがシンプルになって嬉しいよね。empty 相当だよねーってウキウキして empty の代わりの使ってみたり。 三項演算子を省略する使うとちょっとね…

pdoで文字化けを防ぐutf-8を設定する

php

php で MySQL(mariaDB)にアクセスすると文字化けをする いまどき文字化けするなんて思わなかった。古いデータベースだし mysql 関数でやってるやつだからなぁ set name しなくても PDO のドライバの初期化のタイミングで文字コードを指定できるようになって…

php7 で非推奨になったmysql_connect関連のmysql関数を対応する(mysqli

php

php7 から mysql_connect が非サポートになりました。 いまどきPDO使ってないとかありえないんですけど。まぁmysql_connect を使ってるプログラムが動いてることも多いわけです。 今回はこの対応をしたので、誰かの役に立てばいいのでメモっておきます。 mys…

DBアクセス抽象化で、INSERT と UPDATE でコードを共通化させるハック。

php

困りごと: INSERT と UPDATE の共通化をしたい。 似たようなコードを何度も書くのはめんどくさい。テーブル定義が変わったときにもう鬱陶しい。 共通化したい・・・ function insert( name , date ){ sql = "INSERT INTO table_name VALUES( #{name} , #{da…

phpのリクエストパラメータをサクっと処理する

php

phpのリクエストを読むのに、ブラケットがめんどくさい ブラケット書くのがめんどくさい 此の記述がもはや狂気。

php で終了しないプログラムを書く

php

php はホスティングなどのリソースを上手に扱う関係上、実行時間が限られてる。 なので、終了しない無限ループをキックしようと思うとこんな感じなる。 #!/usr/bin/env php

php のフォークと強制終了

php

単純なフォーク

PHP imagick でPDFからJPEG画像をDPI指定で取り出す

php

imagick で jpg 変換すると画質が悪い ぱぱっとPDFをJPEGにしようとすると、とても画質が悪い density オプションを付けたい convert コマンドで与えるようなオプションを渡すにはどうすればいいのか。 setOption でDPIを渡す setOption('density',400 ); $i…

php imagick でページ指定を簡略化して pdf を高速に処理する

php

ruby で出来たので、php でもできるかなと思って調べてみたら。 readImage('myfile.pdf[0]'); $imagick = $imagick->flattenImages(); $imagick->writeImage('pageone.jpg'); ?> php のマニュアルにバッチリなコードが書いてあった。 でも動かすの大変だった…

php の realpath ってファイルチェックも兼ねてた

php

realpath を何となく眺めていると。 ファイルが存在しない時は false を返すと書いてある。え、そうなのか。当たり前だけど、気づいてなかった realpath() returns FALSE on failure, e.g. if the file does not exist. file_exists した後に、realpath で整…

php でhttp connection close を実現する

php

HTTP コネクションンをClose する

WEB経由でファイルのパーミッション・オーナーを変更する

ブラウザ経由でファイルのownerを弄りたいな でも、 chown って root しか許可されてないんですよね。 chown するとパーミッション管理が破綻するおそれがあるからでしょうね。 解決策 : sudoers に記述する もう、sudoers 使うしか無いですね。 Cmnd_Alias …

php で pam を使う(ってはいけない)

php

php から ログインに Linuxのユーザー名&パスワードを使ってみよう Linux のログインには、PAMが使われるのが一般的。 PAM を使うことでLinuxのユーザー名で認証ができる。 今回は PHPの pam を使って認証してみる ただし、このやり方は試験的にやってるの…

php で prototype チェーン的なことをする

php

php で prototype 的なことをやろうと思った。 php の rar をExtendsしようとしたけど、extends できない

任意の拡張子(.jpg/.zip/.ico) をApacheHandlerでcgi/php処理する

php

ブラウザでURL画像をクリックしたら、php起動したい 画像のURLをクリックすると、WEBサーバから画像が送信される。当たり前のことですが、この当たり前の処理に、ハンドラを加えてプログラムを追加したいと思います。 http://example.com/img/top_banner.jpg…

ob_gzhandler が 画像に効かないので強引にやる

php

ob_gzhandler が画像を無視する gz が付いたphpから、content-type: image/jpeg を設定すると transfer-encoding : chunked になってしまい、GZipで転送されない・

コンテンツをgzip 圧縮する gz hander とても楽だった

php

コンテンツを圧縮するには、1つ書くだけ

php のシェル呼出しで引数を後から決める、変数内の文字列展開をする方法

php

php でコマンドを実行するとき、コマンド組み立てが、美しくない $src = "my-sample.jpg" $dst = "out.png" $command = "convert $src $dst" ; 文字列の展開タイミングがあるので、これをクラスにすると面倒くさいんだよね。 コマンドを扱うクラスを作ると処…

phpで複数行のシェル呼び出しをバックグラウンドにする

php

php でシェル呼び出しをバックグラウンドにするには シェル経由のコマンド実行をバックグラウンド(つまり、プロセスの親を root にする)には次のとおりに書く。 /dev/null 2>/dev/null & "); STDOUT/STDERRをphp から切り離せば、プロセスをバックグラウ…

php rmdir() で空じゃないフォルダを消すには?

php

php の rmdir には forece オプションがない。 普通に rmdir すると not empty directory って怒られるんですよね。 みんなどうやってんのかなーって調べたら system("rm -rf $target") してるみたい せっかくなのでSPLで書いてみました。 isDir() ) { retur…

php で create temporary Directory(tmp)

php

create temp dir for zip unpacking

クラスの $thisを省略したい

php

$this->varname->method(); が書きにくい。 省略するには、カレントのスコープに変数展開をする必要がある。

php で array flatten をやる。最近はとっても楽

php

多次元配列の中身を取出す。

ZipArchive は fopen wrapper を使えない。

php

タイトルのとおりです。 php で windows の zip ファイル・アーカイブ形式を扱うには ZipAcrchive の事実上一択になるのですが。 open("sample.zip"); これでファイルが開けるのですが、fopen wrapper が使えない fopen wrapper とは? file_get_contents が…

セッション使うとキャッシュが効かない!? session_start で pragma : no-cache が自動付与される。

php で画像を送信してたんですよ。 画像なので、キャッシュして良いんですけど。なぜかキャッシュしないんですよね。 HTTPキャッシュのヘッダみたら・・・ Expires: ... LastModified: ... E-tag: .. Pragma: no-cache え? nocacheが送られてる?なんで。 p…

zip からファイルを取出すサンプル(文字コード対応)

php

php で zip の アーカイブからファイルを取出す zip から表紙(見出し)に使おうと思ったけど、index=0 を取り出したら上手く行かなった。 ファイル名が先頭のファイルだけを取り出す処理をしたら上手く行った。 gist.github.com TODO: 文字コード対応忘れた…

stdClass と array の変換と object から arrayへの変換

php

配列とオブジェクトは相互変換が可能です。 たまに忘れそうになるので、メモっておきます。 キャストでobject に変換する。 連想配列(assoc array とか ハッシュ)を stcClass に変換する。 $obj = (object) $arr; キャストでArrayに変換する。 $arr = (arr…

ノードからXpathを取り出す。

php

以前RubyでノードからXpathを取り出してみた takuya-1st.hatenablog.jp php でも同じようなことが出来る。 loadXML($xml); $xpath = new DOMXPath($dom); $ret =$xpath->query('//title'); foreach( $ret as $e){ echo $e->getNodePath().…

Slim framewrork はpathinfoの解釈が変なので対応する

php

php のSlimFramework で pathinfoを強制する /var/www/myslim に slim を作ったんだけど。 /var/www/myslim/index.php じゃなくて、 /var/www/myslim/webroot/index.php でslimを起動しつつ、/var/www/myslimので起動したい。 つまり、次のようなURLで起動し…

imagecreatefromjpeg/imagecreatefrompngの自動判別

php

PHPのGDは面倒な子だとおもう。 imagecreatefromjpegにpngを渡すとエラー imagecreatefrompngにJPEGを渡すとエラー jpeg/pngの自動判別をしたい ファクトリー・メソッドみたいなのがない困る。では、自動判別はできないのか? 画像のタイプ毎に、自動判別で…