时间:2020-10-19 12:28 编辑:
php调试错误的方法:首先启动错误报告;然后使用print语句调试程序;最后通过前缀字符“@”屏蔽PHP脚本错误提示即可。
php错误调试
一、php错误级别
一般来说,php错误有三个级别:notice、warning、error。
1、notice:notice错误可能是脚本运行时导致的,也可能是在正常运行过程中出现的。实际上这也许是代码的缺陷,因为PHP对其解释可能与代码的本义有所不同。
2、warning:是一个非致命性地错误,在代码运行时候产生。它们并不是致命的错误,不会停止脚本的执行。
3、error:说明出现了致命的错误,会导致脚本运行停止。PHP运行的任何阶段都有可能出现这种错误。包括初始化、解析和执行代码阶段。
二、启动错误报告
1、修改php.ini
1
2
display_errors=On
error_reporting = E_ALL & ~E_NOTICE
error_reporting
= E_ALL & ~E_NOTICE
2、重启Apache服务器
三、使用print语句调试程序
1、代码
3
4
5
6
7
8
9
10
<form name="form1" method="post" action="">
<form name=
"form1"
method=
"post"
action=
""
>
<input name="txt_key" type="text" id="txt_key">
<input name=
"txt_key"
type=
"text"
id=
<input type="submit" name="Submit" value="搜索">
<input type=
"submit"
name=
"Submit"
value=
"搜索"
<?php
if($_POST[Submit]=="搜索"){
if
(
$_POST
[Submit]==
){
$key=$_POST[txt_key];//获取文本框的值
$key
=
[txt_key];
//获取文本框的值
print $key;
print
;
}
?>
2、运行结果
四、应用前缀字符@屏蔽PHP脚本错误提示
$file="book.php";//定义操作文件
$file
"book.php"
//定义操作文件
@fread($file) or die("文件读取失败!");
@
fread
)
or
die
"文件读取失败!"
);
fclose($file);
fclose(
echo "我不能被输出了!程序运行后,前缀字符@后面的命令不被显示!";
echo
"我不能被输出了!程序运行后,前缀字符@后面的命令不被显示!"
文件读取失败!
五 使用错误处理器记录日志
1、配置php.ini,然后重启Apache服务器
error_log = D:\AppServ\php5\php_errors.log
error_log
= D:\AppServ\php5\php_errors.log
2、代码
11
12
13
function err_log($error,$error_str){//自定义一个错误处理函数
function
err_log(
$error
,
$error_str
//自定义一个错误处理函数
$file="php_error.log";
"php_error.log"
if(filesize($file)>1024){//如果日志文件大于1024KB
filesize
)>1024){
//如果日志文件大于1024KB
rename($file,$file.(string)time());//以时间为准绳对日志文件进行重命名
rename(
.(string)time());
//以时间为准绳对日志文件进行重命名
clearstatcache();//清除文件状态缓存
clearstatcache();
//清除文件状态缓存
error_log($error_str,0,$file);//将出错信息记录到管理员所指定的路径
,0,
//将出错信息记录到管理员所指定的路径
set_error_handler('err_log');//执行自定义函数log_roller()函数
set_error_handler(
'err_log'
//执行自定义函数log_roller()函数
trigger_error(time().":程序报错.\n");//发出错误信息
trigger_error(time().
":程序报错.\n"
//发出错误信息
restore_error_handler();//重新编译这个预错处理的函数
restore_error_handler();
//重新编译这个预错处理的函数
3、运行结果
打开php_errors.log文件
[09-Apr-2017 13:46:52 Asia/Hong_Kong] 1491716812:程序报错.
php怎么调试错误
时间:2020-10-19 12:28 编辑:
php调试错误的方法:首先启动错误报告;然后使用print语句调试程序;最后通过前缀字符“@”屏蔽PHP脚本错误提示即可。
php错误调试
一、php错误级别
一般来说,php错误有三个级别:notice、warning、error。
1、notice:notice错误可能是脚本运行时导致的,也可能是在正常运行过程中出现的。实际上这也许是代码的缺陷,因为PHP对其解释可能与代码的本义有所不同。
2、warning:是一个非致命性地错误,在代码运行时候产生。它们并不是致命的错误,不会停止脚本的执行。
3、error:说明出现了致命的错误,会导致脚本运行停止。PHP运行的任何阶段都有可能出现这种错误。包括初始化、解析和执行代码阶段。
二、启动错误报告
1、修改php.ini
1
2
display_errors=Onerror_reporting= E_ALL & ~E_NOTICE2、重启Apache服务器
三、使用print语句调试程序
1、代码
1
2
3
4
5
6
7
8
9
10
<form name="form1"method="post"action=""><input name="txt_key"type="text"id="txt_key"><input type="submit"name="Submit"value="搜索"><?phpif($_POST[Submit]=="搜索"){$key=$_POST[txt_key];//获取文本框的值print$key;}?>2、运行结果
四、应用前缀字符@屏蔽PHP脚本错误提示
1、代码
1
2
3
4
5
6
<?php$file="book.php";//定义操作文件@fread($file)ordie("文件读取失败!");fclose($file);echo"我不能被输出了!程序运行后,前缀字符@后面的命令不被显示!";?>2、运行结果
文件读取失败!
五 使用错误处理器记录日志
1、配置php.ini,然后重启Apache服务器
1
error_log= D:\AppServ\php5\php_errors.log2、代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<?phpfunctionerr_log($error,$error_str){//自定义一个错误处理函数$file="php_error.log";if(filesize($file)>1024){//如果日志文件大于1024KBrename($file,$file.(string)time());//以时间为准绳对日志文件进行重命名clearstatcache();//清除文件状态缓存}error_log($error_str,0,$file);//将出错信息记录到管理员所指定的路径}set_error_handler('err_log');//执行自定义函数log_roller()函数trigger_error(time().":程序报错.\n");//发出错误信息restore_error_handler();//重新编译这个预错处理的函数?>3、运行结果
打开php_errors.log文件
[09-Apr-2017 13:46:52 Asia/Hong_Kong] 1491716812:程序报错.