如何在PHP中捕获包含文件中的语法错误


How to catch syntax errors in included files in PHP?

我正在开发一个插件系统,当然需要include插件文件。到目前为止,一切都很好——异常被捕获等等。

但我最后的愿望是,甚至可以避免包含语法错误的损坏插件文件。有没有办法在包含的文件中捕获致命错误?

有一个runkit_int()需要PHP runkit,或者只需使用lint:的-l选项运行php

if(strpos(exec('/path/to/php -l filename.php'), 'No syntax errors detected') !== false) {
    // file parses :-)
} else {
    // parse errors :-(
}

或者类似的逻辑。请注意,这只检查解析错误,而不是致命错误(要求失败等)