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 许可协议。转载请注明出处!