我正在寻找一种通用方式以对每个错误/警告等执行一些代码。
我有多个具有相同代码库的网站,我想将所有错误收集在一个集中的位置。为此,我需要在每次引发错误时调用的回调。
是否可以仅使用PHP(代码或配置)来实现此目的,或者我需要进入Web服务器级别?
最佳答案
简而言之,没有。如果PHP崩溃(从而产生错误),则没有简单的方法来收集该错误,因为被调用的脚本在遇到错误后将停止。
set_error_handler()
可以解决此问题,但是许多错误类型(E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING和大多数E_STRICT)将无法通过这种方式捕获。
如果错误是由产生异常的类和方法创建的,请使用 try{} catch{}
结构捕获尽可能多的错误。
可以想象,可以将您的环境设置为每个PHP调用实际上都是对master-PHP文件的调用,然后再执行PHP脚本并收集输出并将其显示给用户,但这会带来很多不必要的复杂性。
如果您正在运行AJAX environment(PHP调用是通过AJAX调用,而不是URL更改),则可以设置一个JavaScript侦听器来捕获意外结果并将其存储。这就是我目前的做法。
我很想听听别人是否有其他技巧可以捕捉错误。
关于php - PHP-对每个错误或警告执行一些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55558852/