菜鸟一枚,接触php不久.
情况一: 最简单的: windows下, php文件引用kint
- 将kint放入c盘 php/pear下,我一般将kint包改名字为kint
结构如下:
c:/php/pear/kint/kint.class.php
-
在php文件里
require(/kint/kint.class.php);
ddd($a);
情况二,windows下,项目中,以我用的ecos框架为例
和情况一差不多,在index.php里require,然后在项目里直接打ddd();
情况三, 服务器里,项目 (注意,Linux,Unix文件名区分大小写!!!)
- 将kint包拷贝到项目根目录下
-
项目里调用的时候写:
require(ROOT_DIR.'/kint/Kint.class.php');
ddd(123);
注:ROOT_DIR为ecos框架的常量.不同框架有不同的标识根目录的方式.(当然也可以用php 获得根目录的方式)
最后 ,总结一下 工作这几个月用到的调试方法(才几个月而已啦~菜鸟~~~)
-
php的
echo "<pre>";
var_dump($_POST);die;
(有时候也不写die,根据需要~~~)
- 火狐插件firephp(这个听别人提过,但其实我自己一次没用过= =!)
-
调试js用的控制台
console.log();
console.dir();
-
自己写的一个将调试数据写入文件,然后再自己打印出来(没办法,框架太复杂,用die截不住)
代码如下:
function filetest_array($arr, $fn = 'test'){
$str = serialize($arr)." ";
$filename = "d:/mytest/$fn".".txt";
file_put_contents($filename,$str, FILE_APPEND);
}
function filetest_string($str, $fn = 'teststring'){
//$str = serialize($arr);
$str = $str." ";
$filename = "d:/mytest/$fn".".txt";
file_put_contents($filename,$str, FILE_APPEND);
}
将这两个程序放到框架index.php里
在项目里调用:
filetest_array($arr1);
然后打开d盘mytest文件夹下test.txt,将里面序列化的字符串拷贝,粘贴到反序列化的程序里(或者自己做个html页面表单提交自动生成测试数据…比较懒.)
反序列化代码如下:
$str = <<<EOF
a:1:{s:7:"payment";a:6:{s:8:"order_id";a:1:{i:0;s:15:"160111092399094";}s:9:"member_id";s:2:"11";s:10:"return_url";s:54:"/work/ecstore/paymentecs/index.php/member-balance.html";s:7:"sumoney";s:6:"885.84";s:5:"money";s:6:"885.84";s:10:"pay_app_id";s:6:"alipay";}}
EOF;
$arr = unserialize($str);
echo "<pre>";
var_dump($arr);
注意字符串不要换行.