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);  

 

相关文章
|
算法 IDE PHP
PHP编程中的错误处理与调试技巧
在PHP编程过程中,错误处理和调试是至关重要的环节。本文将介绍一些常见的PHP错误类型、优秀的调试工具以及有效的调试技巧,帮助开发者更高效地定位和解决代码中的问题。
172 3
|
7月前
|
关系型数据库 MySQL PHP
利用PhpStorm、phpstudy和xdebug快速构建PHP调试环境
至此,我们已经完成了PHP调试环境的构建。现在,你可以在PhpStorm中打开你的PHP项目,设置断点,然后开始调试你的代码了。希望这个指南能帮助你快速构建PHP调试环境,提高你的开发效率。
406 26
|
9月前
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
167 14
|
安全 IDE 测试技术
PHP编程中的错误处理与调试技巧
【9月更文挑战第33天】在代码的世界里,错误是不可避免的。它们像是旅途中的绊脚石,挑战着开发者的耐心和智慧。本文将带你走进PHP的错误处理机制,教你如何优雅地面对和解决这些“意外的小惊喜”。从基本的语法错误到逻辑上的漏洞,我们将一起探索如何通过错误报告、自定义错误处理和调试技巧来提升代码质量。准备好,让我们开始这段寻找并消灭错误的旅程吧!
|
12月前
|
自然语言处理 编译器 应用服务中间件
PHP在服务器上的运行过程
PHP在服务器上的运行过程
200 7
|
12月前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
407 5
|
IDE PHP 开发工具
【PHP开发专栏】Xdebug在PHP调试中的应用
Xdebug 是一个功能强大的 PHP 扩展,提供调试、代码分析和性能分析等功能。本文介绍了 Xdebug 的基本概念、安装配置方法及在 PHP 调试中的应用技巧,包括断点调试、堆栈跟踪、远程调试和性能分析等。通过合理使用 Xdebug,可以显著提高调试效率和代码质量。
273 3
|
域名解析 关系型数据库 MySQL
基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)
该文章指导如何使用PHPEnv搭建本地PHP开发环境,并通过一个简单的"Hello World"程序演示从安装到运行的全过程。
基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)
|
监控 IDE PHP
php xdebug的配置、调试、跟踪、调优、分析
php xdebug的配置、调试、跟踪、调优、分析
|
安全 Shell Linux
从命令行界面运行交互式PHP Shell
从命令行界面运行交互式PHP Shell
225 1