我正在创建一个调试/doc脚本,我想忽略所有标准注释,但保留PHPDoc。
我使用的代码是: // Get file into an array line by line
$line = file($file);
// Trim all empty space and # or // comments
array_map(function($v) {
$v = trim($v);
$v = preg_split("///|#/", $v)[0];
return $v;
}, $line);
问题是,这仍然会留下多行c风格的注释,如:
/*
This
means
nothing
*/
所以我相信我必须在整个文件中阅读,找到每个/*
而忽略/**
(PHPDoc)并删除一切直到*/
。
所以正则表达式需要多行。我对使用file()
的解决方案持开放态度,但我认为file_get_content()
在单独的行上发现c风格的打开和关闭评论标签会更实用。
我认为最好的方法是使用token_get_all()
。