如何在PHP中检查PHP文件代码语法?

时间:2010-04-20 12:34:35

标签: php debugging syntax

我需要在PHP中运行PHP代码的PHP解析器。我在Windows上,我尝试过

system("C:\\Program Files (x86)\\PHP\\php.exe -l \"C:/Program Files (x86)/Apache/htdocs/a.php\"", $output);
var_dump($output);
没有运气。参数-l应检查正确的PHP语法,如果存在某些问题则抛出错误。基本上,我想做一些类似于这张图片的事情:

alt text http://www.mpsoftware.dk/images/phpdesigner7/phpdesigner7-php-syntaxerror.png

即,能够检测代码中的错误。

2 个答案:

答案 0 :(得分:2)

这似乎有效:

<?php

$file = dirname(__FILE__) . '/test.php';

//$output will be filled with output from the command
//$ret will be the return code
exec('php -l ' . escapeshellarg($file), $output, $ret);

//return code should be zero if it was ok
if ($ret != 0) {
    echo 'error:';
    var_dump($output);
} else {
    echo 'ok';   
}

答案 1 :(得分:1)

runkit扩展提供了执行此操作的功能:

runkit_lint_file()

如果您不能使用runkit,那么您只能以其他方式执行您已尝试过的操作:

echo passthru("php -l ".__FILE__);

如果无效,请尝试使用realpath()修复路径。