Home  >  Article  >  Backend Development  >  How to debug errors in php

How to debug errors in php

藏色散人
藏色散人Original
2020-10-15 11:26:541960browse

How to debug errors in PHP: first start the error report; then use the print statement to debug the program; finally, use the prefix character "@" to shield the PHP script error prompt.

How to debug errors in php

Recommended: "PHP Video Tutorial"

php error debugging

1. PHP error levels

Generally speaking, there are three levels of PHP errors: notice, warning, and error.

1. notice: notice errors may be caused when the script is running, or may occur during normal operation. In fact, this may be a flaw in the code, because PHP's interpretation of it may be different from the original meaning of the code.

2. warning: It is a non-fatal error that occurs when the code is running. They are not fatal errors and do not stop script execution.

3. error: indicates that a fatal error has occurred, which will cause the script to stop running. This error may occur at any stage of PHP operation. Includes initialization, parsing and execution code phases.

2. Start error reporting

1. Modify php.ini

display_errors=On
error_reporting = E_ALL & ~E_NOTICE

2. Restart the Apache server

3. Use print statements to debug the program

1. Code

<form name="form1" method="post" action="">
  <input name="txt_key" type="text" id="txt_key">
  <input type="submit" name="Submit" value="搜索">
</form>
<?php
if($_POST[Submit]=="搜索"){
$key=$_POST[txt_key];//获取文本框的值
print $key;
}
?>

2. Running result

4. Apply the prefix character @ to shield PHP script error prompts

1. Code

<?php
$file="book.php";//定义操作文件 
@fread($file) or die("文件读取失败!"); 
fclose($file); 
echo "我不能被输出了!程序运行后,前缀字符@后面的命令不被显示!";
?>

2. Running result

File reading failed!

5 Use error handler to record logs

1. Configure php.ini, and then restart the Apache server

error_log = D:\AppServ\php5\php_errors.log

2. Code

<?php
function err_log($error,$error_str){//自定义一个错误处理函数
$file="php_error.log";
if(filesize($file)>1024){//如果日志文件大于1024KB
rename($file,$file.(string)time());//以时间为准绳对日志文件进行重命名
clearstatcache();//清除文件状态缓存
}
error_log($error_str,0,$file);//将出错信息记录到管理员所指定的路径
}
set_error_handler(&#39;err_log&#39;);//执行自定义函数log_roller()函数
trigger_error(time().":程序报错.\n");//发出错误信息
restore_error_handler();//重新编译这个预错处理的函数
?>

3. Running results

Open the php_errors.log file

[09-Apr-2017 13:46:52 Asia/Hong_Kong] 1491716812: Program error.

The above is the detailed content of How to debug errors in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn