当我的脚本完成后,我想将它们优化/转换为更小的大小+它更难知道文件是做什么的,即使它们被偷了。
$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 ';这是不受欢迎的。如何正确地进行优化?有什么想法吗?我几乎在想要重命名类名等等。
发布于 2012-05-31 20:38:24
在this answer的帮助下,我能够创建这个正则表达式,它将所有空格(包括换行符)修剪为单个空格,但保留引号之间的空格(‘或’)
preg_replace('/\G(?:"[^"]*"|\'[^\']*\'|[^"\'\s]+)*\K\s+/', ' ', $string);https://stackoverflow.com/questions/10833483
复制相似问题