PHP调试的有用方法
常用的调试方法这里就不多说了,我把我平时常用的调试函数和方法留在这里,以便自己随时使用,也乐意分享给各位朋友。一、自定义调试函数:
/**
* 写日志,方便测试
* 注意:服务器需要开通fopen配置
* @param $word 要写入日志里的文本内容 默认值:空值
*/
function tiaoshi($word='') {
$fp = fopen(dirname(__FILE__).'/'.date('Y').date('m').date('d').".log.php","a+");
flock($fp, LOCK_EX) ;
fwrite($fp,"<?php exit();?>RUN TIME:".date('Y-m-d H:i:s')."\n".$word."\n");
flock($fp, LOCK_UN);
fclose($fp);
}
特别说明这个函数的巧妙之处:
1、日志文件以.php结尾,是为了防止服务器上的日志被黑客下载利用。
2、采用.php结尾后,虽然能禁止下载,但是仍然能通过执行php文件而读取到日志内容,所以在日志文本中添加"<?php exit(); ?>"就可以阻止任何内容的添加。
采用这种办法输出的日志样式为:
<?php exit();?>RUN TIME:2015-01-15 14:28:32
run function notice
<?php exit();?>RUN TIME:2015-01-15 14:28:32
run function url
<?php exit();?>RUN TIME:2015-01-15 14:35:15
二、简单介绍PHP自带的几个调试函数:var_dump,var_export,及debug_backtrace、debug_print_backtrace
var_dump 和 var_export
var_dump 函数可以打印一个变量的相关信息,包括变量的长度、类型、结构信息等。
var_export 与 var_dump的功能相近,区别是:此函数返回关于传递给该函数的变量的结构信息,它和 var_dump()不同的是其返回的表示是合法的 PHP 代码。
可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示,也就是说可以把返回结果赋值给变量。
debug_backtrace 和 debug_print_backtrace
debug_backtrace() 函数生成一个 backtrace。 它可以回溯跟踪函数的调用信息,可以说是一个调试利器。
该函数返回一个关联数组。下面是可能返回的元素:
名称
类型
描述
function
字符串
当前的函数名。
line
整数
当前的行号。
file
字符串
当前的文件名。
class
字符串
当前的类名
object
对象
当前对象。
type
字符串
当前的调用类型,可能的调用:
- 返回: "->" - 方法调用
- 返回: "::" - 静态方法调用
- 返回 nothing - 函数调用
args
数组
如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名。
debug_print_backtrace 与 debug_backtrace的区别是debug_print_backtrace直接把追溯的结果输出打印出来。
以上这几个函数如何使用,大家百度一查资料很多。
查看完整版本: PHP调试的有用方法
Tags: