我想用set_error_handler来统一收集错误,在打印自定义错误提示前,我用了ob_end_clean();但是报错了PS:我开启了gzip测试代码:
error_reporting(E_ALL);set_error_handler(array('test', 'handle_error'));
if(function_exists('ob_gzhandler')) {
ob_start('ob_gzhandler');
} else {
ob_start();
}class test {
public static function handle_error($errno, $errstr, $errfile, $errline) {
if($errno) {
debug::system_error($errstr);
}
}
}class debug {
public static function system_error($message) { ob_end_clean();
echo $message;
exit;
}
}
echo '错误前信息<br/>';trigger_error('错误内容');
上述代码测试,就报错了ob_end_clean()注释掉就没关系我对ob_start理解不深,求赐教!
error_reporting(E_ALL);set_error_handler(array('test', 'handle_error'));
if(function_exists('ob_gzhandler')) {
ob_start('ob_gzhandler');
} else {
ob_start();
}class test {
public static function handle_error($errno, $errstr, $errfile, $errline) {
if($errno) {
debug::system_error($errstr);
}
}
}class debug {
public static function system_error($message) { ob_end_clean();
echo $message;
exit;
}
}
echo '错误前信息<br/>';trigger_error('错误内容');
上述代码测试,就报错了ob_end_clean()注释掉就没关系我对ob_start理解不深,求赐教!
chrome浏览器下
错误 330 (net::ERR_CONTENT_DECODING_FAILED):未知错误
if(function_exists('ob_gzhandler')) {
ob_start('my_ob_gzhandler');
} else {
ob_start();
}class test { public static function handle_error($errno, $errstr, $errfile, $errline) {
if($errno) {
debug::system_error($errstr);
}
}
}class debug { public static function system_error($message) { ob_clean();
echo $message; exit;
}
}echo '错误前信息<br/>';trigger_error('ddddddddddddddddddddddddd误内容');function my_ob_gzhandler($buffer,$mod){
header("Content-Encoding: gzip");
return gzencode($buffer, 9, FORCE_GZIP);
}