首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在部署php文件之前,我想优化/加密它们,怎么做?

在部署php文件之前,我想优化/加密它们,怎么做?
EN

Stack Overflow用户
提问于 2012-05-31 20:19:44
回答 1查看 180关注 0票数 2

当我的脚本完成后,我想将它们优化/转换为更小的大小+它更难知道文件是做什么的,即使它们被偷了。

代码语言:javascript
复制
$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包含了“压缩”的东西。几乎没问题,但它会占用大量的空格。如果代码中有这样的空格:

代码语言:javascript
复制
if (true)
   {
        codeeee();
   }

它会转换为:

代码语言:javascript
复制
if (true)
{
codeeee();
}

这没问题。但在这种情况下:

代码语言:javascript
复制
$a = '      var          ';

它确实是:

代码语言:javascript
复制
$a = ' var ';

这是不受欢迎的。如何正确地进行优化?有什么想法吗?我几乎在想要重命名类名等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-31 20:38:24

this answer的帮助下,我能够创建这个正则表达式,它将所有空格(包括换行符)修剪为单个空格,但保留引号之间的空格(‘或’)

代码语言:javascript
复制
preg_replace('/\G(?:"[^"]*"|\'[^\']*\'|[^"\'\s]+)*\K\s+/', ' ', $string);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10833483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档