#contents * 勉強会 [#study] - 第57回PHP勉強会@東京 -- http://events.php.gr.jp/events/show/108 -- 会場) http://voyagegroup.com/company/access/ * 発表内容 [#presen] - pure PHP でバイナリ処理 ~ IO_Bit とその応用 ~ - 第52回に発表した [[presen/PHP/binary]] の続き。 ** 前回の復習 [#d09507b0] - バイナリって何? (エディタで開いてもよく分からないデータ) - バイト単位での処理は string として扱えば OK - 懸念点の払拭。途中の \0 とか 8bit スルーとか。 ** IO_Bit のご紹介 [#io_bit] - バイナリ処理のパッケージ。 - http://openpear.org/package/IO_Bit ビットストリームの動作原理 - バイト単位、ビット単位での read/write が可能。 - 特定オフセットを書き換えたり、16進 dump したりといった便利関数 ** 応用例1) IO_SWF [#io_swf] - Flash の実行ファイルの SWF の中身を書き換える - http://openpear.org/package/IO_SWF - SWF の中身をダンプするデモ - SWF 内の画像を入れ替えるデモ *** 実は [#c1620fdc] - SWFEditor を導入すると PHP 自体を C 言語で機能拡張するので、IO_SWF と大体同じような機能でずっと軽い負荷。サービスで使うなら出来ればこちらで。 - http://sourceforge.jp/projects/swfed/ ** 応用例2) IO_Zlib [#io_zlib] - gzuncompress 相当の処理を IO_Bit で実装。 - http://openpear.org/package/IO_Zlib - Zlib / Deflate の簡単な説明。 - 実装の説明。 - Zlib 伸長するデモ (gzcompress したデータが元に戻るところ) |