スクリプトが完成したら、それらを最適化/変換して、ファイルが盗まれたとしても、ファイルが何をするのかを知るのが難しくなります。
$c = file_get_contents('source.php');
$newStr = '';
$commentTokens = array(T_COMMENT);
if (defined('T_DOC_COMMENT'))
$commentTokens[] = T_DOC_COMMENT; // PHP 5
if (defined('T_ML_COMMENT'))
$commentTokens[] = T_ML_COMMENT; // PHP 4
$tokens = token_get_all($c);
foreach ($tokens as $token) {
if (is_array($token)) {
if (in_array($token[0], $commentTokens))
continue;
$token = $token[1];
}
$newStr .= $token;
}
$newStr = str_replace (chr(13), '', $newStr);
$newStr = str_replace (chr(10), '', $newStr);
$newStr = preg_replace('/\s+/', ' ', $newStr);
$newStr
「圧縮された」ものが含まれるようになりました。ほとんど大丈夫ですが、それは多くの空白を殺します。次のようなコードに空白がある場合:
if (true)
{
codeeee();
}
次のように変換されます。
if (true)
{
codeeee();
}
そしてそれは大丈夫です。しかし、これの場合:
$a = ' var ';
します:
$a = ' var ';
これは望ましくありません。これを正しく最適化するにはどうすればよいですか?何かアイデアはありますか?クラス名の名前変更などを考えています。