以前习惯用 echo,print_r 等方法来测试php输出,这样多多少少会影响到代码的正常运行,现改成“把测试变量输出到文本”的形式,可实现日志形式的调试,代码如下:
view plaincopy to clipboardprint?
1.
2.
3./**
4.
5. * 01.数组转换成字串
6.
7. * */
8.
9. function Array_arrayeval($array, $level = 0) {
10.
11. $space = '';//每行的"空格"数量,即"制表符"数量
12.
13. for($i = 0; $i <= $level; $i++) {
14.
15. $space .= "\t";
16.
17. }
18.
19. $evaluate = "Array\n$space(\n";//计值
20.
21. $comma = $space;//逗号
22.
23. foreach($array as $key => $val) {
24.
25. $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
26.
27.
28. $val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12 || substr($val, 0, 1)=='0') ? '\''.addcslashes($val, '\'\\').'\'' : $val;
29.
30. if(is_array($val)) {
31.
32. $evaluate .= "$comma$key => ".Array_arrayeval($val, $level + 1);
33.
34. } else {
35.
36. $evaluate .= "$comma$key => $val";
37.
38. }
39.
40. $comma = ",\n$space";
41.
42. }
43.
44. $evaluate .= "\n$space)";
45.
46. return $evaluate;
47.
48.}
49.
50./**
51.
52. * 02.写入文件
53.
54. * @param 1.$filename 文件名(完整的物理路径,例如:D:\php\www\root\wjbphp\wjb.txt)
55.
56. * @param 2.$writetext 要写入的文本
57.
58. * @param 3.$openmod 读写方式("w":删掉以前的内容,从新写入; "a":追加)
59.
60. * */
61.
62.function File_writefile($filename, $writetext, $openmod='w') {
63.
64. if(@$fp = fopen($filename, $openmod)) {
65.
66. flock($fp, 2);
67.
68. fwrite($fp, $writetext);
69.
70. fclose($fp);
71.
72. return true;
73.
74. } else {
75.
76. log_runlog('error', "File: $filename write error.");
77.
78. return false;
79.
80. }
81.
82.}
83.
84.?>
主要是用到“File_writefile”函数,对上面的 “File_writefile”函数再包装一下:
view plaincopy to clipboardprint?
1.function cachewrite($writetext, $openmod='a'){
2.
3. $filename = 'd:\My Documents\1\cache.txt';
4. $writetext = "\r\n+++++++++++++++++++++++++++++++++++++++++++\r\n".$writetext;
5. return File_writefile($filename, $writetext, $openmod);
6.}
应用如下:
view plaincopy to clipboardprint?
1.$arr = array(
2. "w" => "wen",
3. "j" => "jian",
4. "b" => "bao"
5.);
6.cachewrite(print_r($arr,true));
输出结果:
1.+++++++++++++++++++++++++++++++++++++++++++
2.Array
3.(
4. [w] => wen
5. [j] => jian
6. [b] => bao
7.)