怎么在PHP中通过递归遍历文件夹去除注释?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体如下:
";
}
}
}
}else{
// 此处无用(因为来的都是目录),如果只转换一个文件,就可以这样使用。
file_put_contents($arr[1].'/'.$dirname,replace_php_src($arr[0].'/'.$dirname) );
}
}
// 去除注释并压缩,heredoc存在的时候去注释不压缩。
function replace_php_src($src){
$contents = file_get_contents($src);
$num = substr_count($contents,'<<<'); // heredoc 是否存在。
$str = "";
if($num > 0){ // heredoc 存在。只去除注释不压缩。
$file = token_get_all($contents); // token_get_all() 将提供的源码按 PHP 标记进行分割.
for ($i=0; $i < count($file); $i++) {
if( is_string($file[$i]) ){
$str .= $file[$i];
}else{
$name = token_name( $file[$i][0] ); // token_name() 获取提供的 PHP 解析器代号的符号名称.
if($name == 'T_COMMENT' || $name == 'T_DOC_COMMENT' ){ // 去除注释
continue;
}else{
$str .= $file[$i][1];
}
}
}
}else{
$str = php_strip_whitespace($src); // 不存在 heredoc 。因为他会错误解析。
}
return $str;
}看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。