在部署php文件之前,我想优化/加密它们,如何优化/加密?
当我的脚本完成后,我想优化/转换它们到更小的大小+即使文件被盗,也很难知道它们做了什么在部署php文件之前,我想优化/加密它们,如何优化/加密?,php,optimization,encryption,Php,Optimization,Encryption,当我的脚本完成后,我想优化/转换它们到更小的大小+即使文件被盗,也很难知道它们做了什么 $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')) $commen
$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 ';
这是不需要的。如何正确地进行优化?有什么想法吗?我几乎在考虑重命名类名等等。在我的帮助下,我创建了这个正则表达式,它将所有空格(包括换行符)裁剪为单个空格,但保留引号之间的空格(或者“或者”)
如果必须的话,只需使用模糊处理程序/代码编码器解决方案。你想保护你的代码还是想优化它?你不可能同时做这两件事,而且任何一件都会受到很大限制。是的,模糊处理程序。不幸的是,我只看到了在线版本……这个线程对你可以下载的模糊处理软件有很多建议(虽然信噪比很低,但您可以尝试一些有用的东西。)
preg_replace('/\G(?:"[^"]*"|\'[^\']*\'|[^"\'\s]+)*\K\s+/', ' ', $string);