PHP不影响正常运行的调试技巧

简介:

以前习惯用 echo,print_r 等方法来测试php输出,这样多多少少会影响到代码的正常运行,现改成把测试变量输出到文本的形式,可实现日志形式的调试,如接口服务端调试。代码如下:

Java代码   收藏代码
  1. <?php  
  2. /** 
  3.  * 写文件函数 
  4.  * @param string $filename 文件名 
  5.  * @param string $writetext 要写入的文本字符串 
  6.  * @param string $openmod 文本写入模式('w':覆盖重写,'a':文本追加) 
  7.  * @return boolean 
  8.  */  
  9. function new_writefile($filename, $writetext, $openmod = 'w') {  
  10.     if (@$fp = fopen($filename, $openmod)) {  
  11.         flock($fp, 2);  
  12.         fwrite($fp, $writetext);  
  13.         fclose($fp);  
  14.         return true;  
  15.     } else {  
  16.         return false;  
  17.     }  
  18. }  
  19.   
  20. /** 
  21.  * 将“数组”转换成“数组字符串”(方便写入文本) 
  22.  * @param array $array 要转换的数组 
  23.  * @param int $level 转换级别/深度 
  24.  */  
  25. function new_arr2str($array, $level = 0) {  
  26.     $space = '';  
  27.     for ($i = 0; $i <= $level; $i++) {  
  28.         $space .= "\t";  
  29.     }  
  30.     $evaluate = "Array\n$space(\n";  
  31.     $comma = $space;  
  32.     foreach ($array as $key => $val) {  
  33.         $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;  
  34.         $val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12 || substr($val, 01)=='0') ? '\''.addcslashes($val, '\'\\').'\'' : $val;  
  35.         if (is_array($val)) {  
  36.             $evaluate .= "$comma$key => " . new_arr2str($val, $level + 1);  
  37.         } else {  
  38.             $evaluate .= "$comma$key => $val";  
  39.         }  
  40.         $comma = ",\n$space";  
  41.     }  
  42.     $evaluate .= "\n$space)";  
  43.   
  44.     return $evaluate;  
  45. }  
  46.   
  47. /** 
  48.  * 写数组(其实用下面的“write函数”就足够用啦~~~) 
  49.  * @param array $array 要写入的数组 
  50.  * @param string $type 文本写入类型('w':覆盖重写,'a':文本追加) 
  51.  */  
  52. function writeArr($array, $type = 'w') {  
  53.     $filename = 'd:\php\wamp\www\write.txt';  
  54.     $writetext = test_arr2str($array);  
  55.     new_writefile($filename, $writetext, $type);  
  56. }  
  57.   
  58. /** 
  59.  * 写对象(包括 数字、字符串、数组) 
  60.  * @param string $writetext 要写入的文本字符串 
  61.  * @param string $type 文本写入类型('w':覆盖重写,'a':文本追加) 
  62.  */  
  63. function write($writetext, $type = 'a'){ // 'w':覆盖重写,'a':表示'文本追加'  
  64.     $filename = 'd:\php\wamp\www\write.txt';  
  65.     $writetext = "++++++++++++++++++++++++++++++++++++++++++\r\n" . print_r($writetext, true) . "\r\n";  
  66.     new_writefile($filename, $writetext, $type);  
  67. }  
  68.   
  69. //require_once('d:\php\wamp\www\write.php'); // add by wenjb(注意:本地测试用,不用提交到 svn)  

 应用如下:

Java代码   收藏代码
  1. $arr = array(  
  2.     "w" => "wen",  
  3.     "j" => "jian",  
  4.     "b" => "bao"  
  5. );  
  6. write($arr);  

 输出结果如下:

Java代码   收藏代码
  1. ++++++++++++++++++++++++++++++++++++++++++  
  2. Array  
  3. (  
  4.     [w] => wen  
  5.     [j] => jian  
  6.     [b] => bao  
  7. )  

 上面的仅仅是小技巧而已,最好还是用专业的调试工具去调试比较好。。。也可以

Java代码   收藏代码
  1. $data222 = $arr;  
  2.   
  3. $text222 = print_r($data222, true);  
  4. $filename222 = 'd:\My Documents\1\write.txt';  
  5. file_put_contents($filename222, $text222);  

 

相关文章
|
8月前
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
216 0
|
1月前
|
前端开发 PHP 开发者
PHP编程中的异常处理与调试技巧
在PHP编程中,异常处理和调试是至关重要的环节。本文将深入探讨PHP中异常处理的机制,介绍常见的异常类型以及如何合理地进行异常处理。同时,还将分享一些实用的调试技巧,帮助开发者快速定位和解决问题,提高代码质量和效率。
13 4
|
1月前
|
IDE PHP 开发工具
PHP编程中的错误处理与调试技巧
在PHP编程过程中,经常会遇到各种错误和bug,正确的错误处理和调试技巧对于提高代码质量和开发效率至关重要。本文将介绍PHP编程中常见的错误类型、优秀的错误处理实践以及高效的调试技巧,帮助开发者更好地应对挑战。
15 0
|
5月前
|
PHP
运行php服务,电脑抓不了包
运行php服务,电脑抓不了包
26 0
|
8月前
|
应用服务中间件 PHP Apache
如何运行php文件
如何运行php文件
|
9月前
|
前端开发 JavaScript 数据可视化
javascript逐行显示数据及php实时输出前端内容后台保持继续运行的解决方案(setTimeout定时器、flush和ob_flush函数、安装进度展示)
javascript逐行显示数据及php实时输出前端内容后台保持继续运行的解决方案(setTimeout定时器、flush和ob_flush函数、安装进度展示)
134 0
|
9月前
|
弹性计算 安全 关系型数据库
阿里云ECS服务器宝塔Linux系统php和mysql运行环境配置步骤
阿里云ECS服务器宝塔Linux系统php和mysql运行环境配置步骤
290 0
|
9月前
|
存储 自然语言处理 安全
PHP底层运行机制与原理剖析
PHP底层运行机制与原理剖析
111 0
|
11月前
|
小程序 PHP 开发者
快速搭建微信小程序可以访问的PHP后台数据,phpstorm运行本地PHP后台项目
快速搭建微信小程序可以访问的PHP后台数据,phpstorm运行本地PHP后台项目
216 0