PHP开发程序调试

本文围绕PHP程序调试展开,介绍了PHP自带的调试功能,包括在开发和生产环境下修改php.ini配置,利用file_put_contents()函数记录信息,还提及语言特性使用注意事项,如少用错误控制运算符“@”,部分函数自带debug功能。此外,还提到可引进Xdebug等调试工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php程序如何调试?

一、PHP自带的调试功能

1、修改php.ini

(1)开发环境

需要打开报错输出显示,方便开发者调试。

display_errors = On

(2)生产环境

不能直接将错误输出,而是记入日志,以免透露路径、数据库连接、数据表等信息遭到黑客攻击。
display_errors = Off
log_errors = On
error_log= /path/

在这里插入图片描述

2、利用PHP file_put_contents() 函数

$a = 123;
file_put_contents(“error6666.log”,“aaa” . $this->password. PHP_EOL, FILE_APPEND);


注1:如果目录指向的文件不存在怎么办?

会自动创建。

注2:PHP_EOL是什么?

换行符。

unix系列用 \n

windows系列用 \r\n

mac用 \r

PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性。


注3:Linux下可能有读写权限,建议先放开权限

chmod 777 文件名

chmod -R 777 文件夹 (递归该文件夹下所有文件)


3、其他一些语言特性、功能的使用

(1)少用错误控制运算符"@"

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

如果一个缺陷发生在这个表达式中,从PHP的输出中看不到任何错误,这增加了调试的难度。所以能不用则不用。

注: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。

例子:
$a = 123;

echo @$b;

(2)有些函数自带有debug功能

例如:
$fp = fsockopen(“www.example.com”, 80, errno,errstr, 30);

一般这样的函数(主要是网络通信类的),会自己提供调试参数: e r r n o 和 errno和 errnoerrstr。

你可以加一句:
if(!$fp) echo “errstr(errno)
\n”;

就能看到连接失败的原因了。

这些函数有:fsockopen,pfsockopen,stream_socket_server,stream_socket_client 等。

还有些函数是调试一个功能用的,比如:mysql_errno,socket_last_error,socket_strerror 等。

二、引进调试工具

如:Xdebug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值