2

例如,从我的 index.php 文件中,我想检查另一个 PHP 文件是否执行没有错误(如果是,则包含它),如果它确实失败并返回致命错误,我显然喜欢不包括它。有什么建议么?谢谢...

4

3 回答 3

1

您可以使用CLI的-l 参数:php

php -l filename.php

并解析输出。

$o = `php -l filename.php`;

if (strpos($o, 'No syntax errors detected') !== false) {
    echo 'No errors';
} else {
    echo 'There are errors';
}
于 2012-11-05T00:49:34.063 回答
0

您可能不想单独运行第二个文件。也就是说,你可以做两件事之一......

1.) 如果您真的想将它用作单独执行的包含,您可以使用诸如 CURL 之类的东西调用它,并让它输出预期结果或失败消息,然后读取并采取相应措施。

2.) 在 try/catch 语句中包含您的函数/类/等执行,以正确处理遇到的任何错误。http://php.net/manual/en/language.exceptions.php可能会对您提供更多帮助。

于 2012-11-05T00:49:44.250 回答
0

这会将脚本作为一个单独的进程运行,没有共享变量/函数/状态/范围等...

$cmd = 'php file.php';
exec($cmd, $ar, $exit_status);
$wasFatal = $exit_status == 255;

它很有可能使用与您的网络服务器 php.ini 不同的 php.ini 运行,因此请期待配置甚至 php 版本的差异。

于 2012-11-05T00:54:24.673 回答