在部署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);