Php自定义功能是截断文本,但我不希望它

时间:2010-11-24 05:04:45

标签: php

我将大量文本传递给PHP函数并让它返回压缩。该文正被切断。并非所有这些都被传回去了。就像最后一些单词在压缩后没有出现一样。 PHP是否限制了这个地方?

 function compress($buffer) {
    /* remove comments */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* remove tabs, spaces, newlines, etc. */
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
}

是功能吗?来自http://www.antedes.com/blog/webdevelopment/three-ways-to-compress-css-files-using-php

是否有像php.ini中的设置来修复此问题?

1 个答案:

答案 0 :(得分:1)

你的compress()函数对于CSS文件看起来不错,而不是JS。这就是我用来“压缩”CSS(包括jquery-ui和其他怪物):

function compress_css($string)
{
    $string = preg_replace('~/\*[^*]*\*+([^/][^*]*\*+)*/~', '', $string);
    $string = preg_replace('~\s+~', ' ', $string);
    $string = preg_replace('~ *+([{}+>:;,]) *~', '$1', trim($string));
    $string = str_replace(';}', '}', $string);
    $string = preg_replace('~[^{}]++\{\}~', '', $string);
    return $string;
}

并且对于JavaScript文件这个:https://github.com/mishoo/UglifyJS2(或者这个:http://lisperator.net/uglifyjs/#demo

我确信还有其他好的工具可以完成相同的任务,只需找到适合你的东西并使用它。