PHPの必殺技.それはgzdeflate!

コードを縮めるにはどうするか?最も簡単なのが,gzipなどでコード自体を圧縮してしまうことです.これは反則気味なのであなごるでしか使えません.

PHPには数多く圧縮関数が用意されています.gzencode,gzcompress,gzdeflate,bzcompressなどです.一体どれを使えば良いのか?と悩みますが基本的にはgzdeflateで圧縮しておけばよいです.他の関数はヘッダーとか付くので,長くなりがちです.ただし,圧縮対象の文字列が相当長いときはbzcompressの方が短くなるようです.

gzdeflateで圧縮した文字列はgzinflateで解凍できるので,基本的なコードとしては

<? eval( gzinflate('gzdeflateを使用して圧縮したPHPコード '));

みたいになります.注意点としては eval()に投げるコードは <?はいらないということと,gzinflateの引数にはそのままバイナリーを投げてしまって問題ありません.base64_encode/decodeなどで変換する必要はありません.

豆知識

gzdeflateで圧縮した文字列の最後の1byteはなくても復号できる場合が結構あります.とりあえず圧縮してみたら,一番後ろの文字はけずってみましょう.

gzipのアルゴリズムは詳しくは理解していませんが,同じ文字列が繰り返されると圧縮効率が上がるようです.for文を使用している場合は変数名を$f,$o,$rみたいにするとよい場合があります.コード中で使用されているアルファベットの種類はできるだけ少なくしましょう.

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます