【PHP错误捕获分享】PHP捕获应用错误 简单记录并友好处理展示
时间:2023年05月11日
/来源:网络
/编辑:佚名
为了某种目的而需要捕获系统错误,在此简单分享下某个项目中的捕获方法。
默认php错误如图
index.php
/**
* 捕获应用错误记录
*/
function ef_error_record($errno,$errstr,$errfile,$errline){
$e = array("no"=>$errno,"str"=>$errstr,"file"=>$errfile,"line"=>$errline);
ef_error_display("record",$e);
}
/**
* 错误中断显示
*/
function ef_error_display($method='',$option=''){
static $e = array();
if($method=='record'){
$e[] = $option;
return true;
}else if(!empty($e)){
include ('/common/template/error.php');
exit();
}
return true;
}
//禁止错误输出
error_reporting(0);
//设置自定义错误函数 捕获系统错误并记录
set_error_handler("ef_error_record");
//注册结束脚本函数 该函数会有意外或正常结束脚本触发(同析构函数)
register_shutdown_function("ef_error_display");
复制
error.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>EFrame 运行错误</title>
<style type="text/css">
body {
background-color: #fff;
margin: 40px;
font-family: Lucida Grande, Verdana, Sans-serif;
font-size: 12px;
color: #000;
}
#content {
border: #999 1px solid;
background-color: #fff;
padding: 20px 20px 12px 20px;
}
h1 {
font-weight: normal;
font-size: 16px;
color: #990000;
margin: 0 0 4px 0;
}
span {
color: #990000;
}
.msg p{
color:#990000;
}
.file{
text-indent:15px;;
}
</style>
</head>
<body>
<div id="content">
<h1>EFrame 运行错误</h1>
<?php
foreach($e as $key=>$val){
echo "<div class=\"msg\"><p><span>[".($key+1)."]</span> {$val['str']} </p></div>",
"<div class=\"file\"><p>".$val['file']." 行: <span>{$val['line']}</span></p></div>";
}
?> </div>
</body>
</html>
复制
最终错误错误页面(当然页面可以自己修改想要的样式):
默认php错误如图
index.php
/**
* 捕获应用错误记录
*/
function ef_error_record($errno,$errstr,$errfile,$errline){
$e = array("no"=>$errno,"str"=>$errstr,"file"=>$errfile,"line"=>$errline);
ef_error_display("record",$e);
}
/**
* 错误中断显示
*/
function ef_error_display($method='',$option=''){
static $e = array();
if($method=='record'){
$e[] = $option;
return true;
}else if(!empty($e)){
include ('/common/template/error.php');
exit();
}
return true;
}
//禁止错误输出
error_reporting(0);
//设置自定义错误函数 捕获系统错误并记录
set_error_handler("ef_error_record");
//注册结束脚本函数 该函数会有意外或正常结束脚本触发(同析构函数)
register_shutdown_function("ef_error_display");
复制
error.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>EFrame 运行错误</title>
<style type="text/css">
body {
background-color: #fff;
margin: 40px;
font-family: Lucida Grande, Verdana, Sans-serif;
font-size: 12px;
color: #000;
}
#content {
border: #999 1px solid;
background-color: #fff;
padding: 20px 20px 12px 20px;
}
h1 {
font-weight: normal;
font-size: 16px;
color: #990000;
margin: 0 0 4px 0;
}
span {
color: #990000;
}
.msg p{
color:#990000;
}
.file{
text-indent:15px;;
}
</style>
</head>
<body>
<div id="content">
<h1>EFrame 运行错误</h1>
<?php
foreach($e as $key=>$val){
echo "<div class=\"msg\"><p><span>[".($key+1)."]</span> {$val['str']} </p></div>",
"<div class=\"file\"><p>".$val['file']." 行: <span>{$val['line']}</span></p></div>";
}
?> </div>
</body>
</html>
复制
最终错误错误页面(当然页面可以自己修改想要的样式):
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03