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