php去除代码中的空格和注释函数
在看ThinkPHP源码的时候,发现了一个去除空格和注释的函数,感觉还不错,就截取来用。
经过证实是可以实现去除注释的,原来函数还会对heredoc 语法进行替换的,我去除了,经过测试,没什么影响。
函数
/**
* 去除代码中的空白和注释
* @param string $content 代码内容
* @return string
* @author [建百站www.jianbaizhan.com]
*/
function strip_whitespace($content) {
$stripStr = '';
//分析php源码
$tokens = token_get_all($content);
$last_space = false;
for ($i = 0, $j = count($tokens); $i < $j; $i++) {
if (is_string($tokens[$i])) {
$last_space = false;
$stripStr .= $tokens[$i];
} else {
switch ($tokens[$i][0]) {
//过滤各种PHP注释
case T_COMMENT:
case T_DOC_COMMENT:
break;
//过滤空格
case T_WHITESPACE:
if (!$last_space) {
$stripStr .= ' ';
$last_space = true;
}
break;
default:
$last_space = false;
$stripStr .= $tokens[$i][1];
}
}
}
return $stripStr;
}函数用法
$str = file_get_contents(__FILE__); $http = strip_whitespace($str); echo htmlspecialchars($http);
本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/249
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!