時には、大きなPHPスクリプトを縮小し、いくつかのスクリプトを1つのファイルに圧縮する必要があります。これは、インターネットに公開するライブラリを作っていて、誰にも邪魔されたくない場合や、頻繁にコピーする便利なスクリプトで、あまり多くのデータを転送したくない場合などに有効です。
解決策として考えられるのは、コードの最小化です。
このためのオンラインツールを用意しました(コードを貼り付けるだけで、すぐにminifyされたバージョンが返ってきます)。
ミニファミリーのコアは、この最小値まで減らすことができる。
$file = 'StaticClass.php';// DgxのPHPシュリンカー// PHP 4 と 5 の互換性if (!defined('T_DOC_COMMENT'))define ('T_DOC_COMMENT', -1);if (!defined('T_ML_COMMENT'))define ('T_ML_COMMENT', -1);// 入力ファイルの読み込み$input = file_get_contents($file);$space = $output = '';$set = '!"#$&\'()*+,-./:;<=>?@[\]^`{|}';$set = array_flip(preg_split('//',$set));foreach (token_get_all($input) as $token) {if (!is_array($token))$token = array(0, $token);switch ($token[0]) {case T_COMMENT:case T_ML_COMMENT:case T_DOC_COMMENT:case T_WHITESPACE:$space = '';break;default:if (isset($set[substr($output, -1)]) ||isset($set[$token[1]{0}])) $space = '';$output .= $space . $token[1];$space = '';}}// 縮小したファイルを書き込むfile_put_contents('{cH00ffff}私達は、私達のために'.$file, $output);
核となるのは token_get_all()
関数で、PHP コードを一意に識別できる個々の「アトム」(トークン) にパースし、必要に応じて無視できるようにします。
例えば、次のようなものが生成されます(例では NetteUtils FilterImages
メソッドを使用しました)。
。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja