首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果发现PHP错误则包括500个文件

问如果发现PHP错误则包括500个文件
EN

Stack Overflow用户
提问于 2016-08-03 22:43:32
回答 3查看 89关注 0票数 0

如果我意外地在代码中犯了错误,是否可以使用PHP显示500个页面?我试着使用error_reporting(0),但那只会隐藏错误。如果我使用htaccess的php_flag display_errors off,Chrome (和其他浏览器)会像这样显示一个500错误:http://image.prntscr.com/image/4c87df1998634097a18a85d268ccc818.png

谢谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-03 22:55:12

在PHP5.x中,你可以捕获除致命错误之外的所有错误。看看http://php.net/manual/en/function.set-error-handler.php吧

快速示例:

代码语言:javascript
复制
<?php 
function handler($errno, $errstr, $errfile, $errline)
{
   echo file_get_contents('500.html');
   die();
}
set_error_handler('handler', E_ALL);
票数 2
EN

Stack Overflow用户

发布于 2016-08-03 23:01:24

组合这些函数以在出错时进行重定向:

error_get_last() #获取lasterror

如果需要,重定向的header() #

使用error_get_last捕获错误的register_shutdown_function() #

ob_start() / ob_flush()#捕获内容,用于后期显示或不显示

在php文件的开头:

代码语言:javascript
复制
ob_start();
register_shutdown_function(function(){
   $err = error_get_last();
   //check the $err 
   if($err){
      header('Location: 505.html');
      exit;
   } else {
      ob_flush();#or ob_end_flush();
      exit;
   }
});

您还可以使用此命令捕获致命错误。

票数 2
EN

Stack Overflow用户

发布于 2016-08-03 22:54:33

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38746828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档