发布网友 发布时间:2022-04-28 01:29
共2个回答
懂视网 时间:2022-04-28 05:51
php调试错误的方法:首先启动错误报告;然后使用print语句调试程序;最后通过前缀字符“@”屏蔽PHP脚本错误提示即可。
推荐:《PHP视频教程》
php错误调试
一、php错误级别
一般来说,php错误有三个级别:notice、warning、error。
1、notice:notice错误可能是脚本运行时导致的,也可能是在正常运行过程中出现的。实际上这也许是代码的缺陷,因为PHP对其解释可能与代码的本义有所不同。
2、warning:是一个非致命性地错误,在代码运行时候产生。它们并不是致命的错误,不会停止脚本的执行。
3、error:说明出现了致命的错误,会导致脚本运行停止。PHP运行的任何阶段都有可能出现这种错误。包括初始化、解析和执行代码阶段。
二、启动错误报告
1、修改php.ini
display_errors=On error_reporting = E_ALL & ~E_NOTICE
2、重启Apache服务器
三、使用print语句调试程序
1、代码
<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、运行结果
四、应用前缀字符@屏蔽PHP脚本错误提示
1、代码
<?php $file="book.php";//定义操作文件 @fread($file) or die("文件读取失败!"); fclose($file); echo "我不能被输出了!程序运行后,前缀字符@后面的命令不被显示!"; ?>
2、运行结果
文件读取失败!
五 使用错误处理器记录日志
1、配置php.ini,然后重启Apache服务器
error_log = D:AppServphp5php_errors.log
2、代码
<?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('err_log');//执行自定义函数log_roller()函数 trigger_error(time().":程序报错. ");//发出错误信息 restore_error_handler();//重新编译这个预错处理的函数 ?>
3、运行结果
打开php_errors.log文件
[09-Apr-2017 13:46:52 Asia/Hong_Kong] 1491716812:程序报错.
热心网友 时间:2022-04-28 02:59
你好,一般使用框架时,出现问题,会在页面里自动显示的,当然框架可能需要配置成 开发 模式, 然后再配合例如var_mp 这样的打印函数进行调试。如果是操作数据库,就使用框架自带的 最后执行的sql语句进行检测比如,CI的$this->db->last_query(); 或者 Thinkphp3.2的$Model->getLastSql();