你的用户如何上传照片?你说得对register_shutdown_function
. 它似乎在我的代码中运行良好,尽管我只调用后端via AJAX (我也有文件上传功能),所以只需要考虑这个案例。下面是我如何在插件中设置它的。在plugin类之外,在文件底部的某个地方,我有一个函数:
function fatal_handler_ajax_wrapper() {
$error = error_get_last();
if( $error !== NULL) {
$ret = array(\'status\' => -1, \'msg\' => \'Fatal error on server. Please contact server admin.\');
$errfile = "unknown file";
$errstr = "shutdown";
$errno = E_CORE_ERROR;
$errline = 0;
$ret[\'details\'] = $error;
}
echo json_encode($ret);
}
在我的插件构造函数中,我将其连接如下:
function __construct() {
register_shutdown_function( "fatal_handler_ajax_wrapper" );
// ... whatever else you may need to do in your constructor
}
我用这个成功地测试了它
SO question\'s代码(产生一个很好的致命错误)。将其放在后端的AJAX处理程序函数中的某个位置,并观察后端将一个漂亮的JSON对象返回到前端:
$a = \'x\';
while (true) {
$a = $a.$a;
}
Edit: 刚刚发现
from this SO question 那个
register_shutdown_function
几乎每次都会执行,即使没有错误。我编辑了代码片段以反映这一事实。