我想阻止调试函数var_dump,print_r等…从提交到repo,以便QA可以检查事物而不报告“所有页面上都有一大块文本!!”等错误.
我试过正则表达式(不是一个好主意……大概).
我也试过了token_get_all但是由于某种原因,它为每个调试函数返回T_STRING,我想这会起作用,但看起来很奇怪……
还有第三种更好的方法吗?
根据我的新理解,这就是我所拥有的:
$debug_functions = array('print_r','var_dump','var_export'); foreach($files as $file=>$ext){ $file_contents = file_get_contents($file); //break the content into tokens $tokens = token_get_all($file_contents); foreach($tokens as $t){ //if the token id is an int (sometimes it isn't) if(is_int($t[0])){ //if it matches our debug stuff... if($t[0] == T_STRING && (in_array($t[1],$debug_functions) || preg_match('/xdebug_.*?/',$t[1]))){ echo 'Debug output '. $t[1] . ' found on line '. $t[2] . PHP_EOL; } } } }