检查外部PHP文件中是否存在致命错误?

检查外部PHP文件中是否存在致命错误?,php,error-handling,Php,Error Handling,从index.php文件内部,比如说,我想检查另一个php文件是否执行时没有错误(如果有,则包括它),如果它确实失败并返回致命错误,我显然不想包括它。有什么建议吗?谢谢…您可以使用phpCLI的-l: php -l filename.php 并解析输出 $o = `php -l filename.php`; if (strpos($o, 'No syntax errors detected') !== false) { echo 'No errors'; } else { e

从index.php文件内部,比如说,我想检查另一个php文件是否执行时没有错误(如果有,则包括它),如果它确实失败并返回致命错误,我显然不想包括它。有什么建议吗?谢谢…

您可以使用
php
CLI的
-l

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';
}

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

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


2.)在try/catch语句中包含函数/类/etc执行,以正确处理遇到的任何错误。使用此方法可能会对您有所帮助。

此方法将脚本作为单独的进程运行,没有共享的变量/函数/状态/范围等

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

它很有可能使用不同于您的Web服务器php.ini的php.ini运行,因此预计配置甚至php版本会有所不同。

您真的需要包括吗?如果没有,并且您可以在不共享任何变量/函数的情况下执行脚本,除了显式传递给它的变量/函数之外,这是非常可能的。实际上不,我不需要在事后包含它。。。我真的需要一个函数来检查PHP文件是否会导致致命错误,如果是,则返回TRUE,如果不是,则返回FALSE。。。