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('错误内容');
ちなみに、次のエラーを投稿してください:
Chrome ブラウザ下
エラー 330 (net::ERR_CONTENT_DECODING_FAILED): 不明なエラー
error_reporting(E_ALL);set_error_handler(array('test', 'handle_error'));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);}
PHPcode?1 2345 67891011121314151617181920212223242526272829303132333435363738394041エラー報告(E_ALL) ; set_error_handler( array('test', 'handle_error')); if(function_exists('ob_gzhandl...
なんて才能のある人なんだろう、、、ありがとう