`
hudeyong926
  • 浏览: 2033046 次
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多

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

<?php
/**
 * 写文件函数
 * @param string $filename 文件名
 * @param string $writetext 要写入的文本字符串
 * @param string $openmod 文本写入模式('w':覆盖重写,'a':文本追加)
 * @return boolean
 */
function new_writefile($filename, $writetext, $openmod = 'w') {
	if (@$fp = fopen($filename, $openmod)) {
		flock($fp, 2);
		fwrite($fp, $writetext);
		fclose($fp);
		return true;
	} else {
		return false;
	}
}

/**
 * 将“数组”转换成“数组字符串”(方便写入文本)
 * @param array $array 要转换的数组
 * @param int $level 转换级别/深度
 */
function new_arr2str($array, $level = 0) {
	$space = '';
	for ($i = 0; $i <= $level; $i++) {
		$space .= "\t";
	}
	$evaluate = "Array\n$space(\n";
	$comma = $space;
	foreach ($array as $key => $val) {
		$key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
		$val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12 || substr($val, 0, 1)=='0') ? '\''.addcslashes($val, '\'\\').'\'' : $val;
		if (is_array($val)) {
			$evaluate .= "$comma$key => " . new_arr2str($val, $level + 1);
		} else {
			$evaluate .= "$comma$key => $val";
		}
		$comma = ",\n$space";
	}
	$evaluate .= "\n$space)";

	return $evaluate;
}

/**
 * 写数组(其实用下面的“write函数”就足够用啦~~~)
 * @param array $array 要写入的数组
 * @param string $type 文本写入类型('w':覆盖重写,'a':文本追加)
 */
function writeArr($array, $type = 'w') {
	$filename = 'd:\php\wamp\www\write.txt';
	$writetext = test_arr2str($array);
	new_writefile($filename, $writetext, $type);
}

/**
 * 写对象(包括 数字、字符串、数组)
 * @param string $writetext 要写入的文本字符串
 * @param string $type 文本写入类型('w':覆盖重写,'a':文本追加)
 */
function write($writetext, $type = 'a'){ // 'w':覆盖重写,'a':表示'文本追加'
	$filename = 'd:\php\wamp\www\write.txt';
	$writetext = "++++++++++++++++++++++++++++++++++++++++++\r\n" . print_r($writetext, true) . "\r\n";
	new_writefile($filename, $writetext, $type);
}

//require_once('d:\php\wamp\www\write.php'); // add by wenjb(注意:本地测试用,不用提交到 svn)

 应用如下:

$arr = array(
    "w" => "wen",
    "j" => "jian",
    "b" => "bao"
);
write($arr);

 输出结果如下:

++++++++++++++++++++++++++++++++++++++++++
Array
(
    [w] => wen
    [j] => jian
    [b] => bao
)

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

$data222 = $arr;

$text222 = print_r($data222, true);
$filename222 = 'd:\My Documents\1\write.txt';
file_put_contents($filename222, $text222);

 

 

分享到:
评论

相关推荐

    web开发调试方法

    在web开发过程中,调试是必不可少的一个环节,它帮助开发者找出并修复代码中的错误,提高软件的质量和稳定性。本文将深入探讨web开发的调试方法,包括常见的工具、技巧以及如何有效地利用它们来提升开发效率。 首先...

    PHP可调试团队开发环境配置借鉴.pdf

    - **安装Memcached服务**:下载memcached并运行安装程序,设置端口和服务启动选项,确保服务运行正常。 - **检查安装成功**:通过PHPinfo()函数查看memcache扩展是否已加载,或在命令行使用`php -m`检查。 在配置...

    arm开发板移植PHP,源码已编译

    在嵌入式领域,将PHP移植到ARM开发板是一项常见的任务,这主要为了在低功耗...但需要注意的是,移植过程中可能会遇到各种问题,如依赖库不兼容、内存管理差异等,需要具备一定的Linux系统知识和调试技巧才能顺利解决。

    cmd下运行php脚本

    ### CMD下运行PHP脚本详解 #### 一、概述 在Windows系统中,通过命令提示符(Command ...通过以上步骤,我们不仅能够顺利地在CMD下运行PHP脚本,还能掌握一些高级技巧,如带参数运行、定时任务等,从而提高开发效率。

    php-5.6.30-VC11-x64

    《PHP 5.6.30在Windows 7 64位系统中的应用与调试》 PHP(Hypertext Preprocessor)是一种广泛使用的...在使用过程中,深入理解其核心特性、配置方法和调试技巧,将有助于提升开发效率,打造出更加优秀的Web应用程序。

    解决windows上php xdebug 无法调试的问题

    在Windows环境下进行PHP开发时,有时会遇到Xdebug无法正常工作的情况,这通常是由于配置不当或版本不兼容等问题引起的。...对于初学者来说,多阅读相关教程和实践案例,有助于进一步掌握调试技巧。

    php5_win32

    标题“php5_win32”指的是适用于Windows 32位操作系统的PHP5版本。这个解压版的PHP5是为在Windows环境下运行PHP脚本语言而设计的,它不需要通过编译...同时,了解错误日志的查看和调试技巧也是确保程序正常运行的关键。

    PHP实例开发源码—搜索动力2013 在线搜(php+mysql) 正式版.zip

    【标题】"PHP实例开发源码—搜索动力2013 在线搜(php+mysql) 正式版.zip" 提供的是一个基于PHP和MySQL的在线搜索引擎的完整源码,名为“搜索动力2013”。这个项目可能是为了帮助开发者理解和学习如何构建一个功能...

    window 下sphinx 2.2.11安装 及coreseek3.1 安装包及安装说明 ,简单php调试

    5. **简单PHP调试技巧**: - 检查PHP连接Sphinx的网络连接是否正常,确保端口9312(或其他配置的端口)没有被其他服务占用。 - 确认`sphinx.conf`配置无误,特别是数据源、索引名和索引路径。 - 使用` indexer --...

    php检查服务器是否支持某模块的方法

    总的来说,理解并熟练掌握`extension_loaded()`函数是PHP开发中不可或缺的一部分,它有助于确保我们的代码能在目标服务器环境中正常运行,避免因缺少必要的模块而导致的功能缺失。通过灵活运用这些技术,我们可以更...

    如何修改php的版本?看完这份文档你就会了!

    了解如何修改PHP版本可以帮助开发者更好地管理项目,确保应用能够在预期的环境下正常运行。 #### 二、Windows环境下的PHP版本切换 1. **备份当前环境**:在进行任何重大更改之前,请确保备份现有的PHP配置文件(如...

    PHP实例开发源码-webstar php留言板 正式版.zip

    《PHP实例开发:Webstar ...通过研究和分析Webstar PHP留言板的源码,开发者不仅可以深化对PHP语言的理解,还能掌握实际项目中的开发流程和技巧。同时,这也是一个很好的学习资源,有助于提升在Web开发领域的实践能力。

    wince4.2与vs2005联机调试 .pdf

    ### WINCE4.2与VS2005联机调试详解 #### 一、环境准备 ...以上步骤详细介绍了如何在WINCE4.2与VS2005之间进行联机调试,以及一些额外的调试技巧。这对于从事嵌入式开发的专业人士来说是非常实用的知识点。

    up_427582_phpext_ov2556.rar

    6. **错误处理与调试**:调试PHP扩展通常使用GDB、Xdebug等工具,需要掌握相应的调试技巧。 7. **前端渲染技术**:了解如Smarty、Twig等PHP模板引擎的工作原理,以及如何在自定义扩展中实现类似的功能。 8. **性能...

    简单的PHP在线考试系统实例源码

    9. 文件路径和URL:了解如何在PHP中正确引用和处理文件路径以及构建URL对于系统正常运行至关重要。 10. 学习资源:为了更好地理解并扩展这个系统,可以参考PHP官方文档、在线教程,以及相关的Web开发书籍,以掌握更...

    第8章 错误、异常处理与调试1

    【PHP错误类型】 ...通过学习错误处理和调试技巧,程序员可以更有效地诊断问题,提高代码质量和维护性。在实际开发中,应当养成良好的编程习惯,减少错误的发生,同时学会利用PHP提供的工具进行有效的调试。

    PHP+MySQL编程实例.rar

    1. **安装和配置环境**:设置PHP运行环境,如XAMPP或WAMP,以及MySQL服务器,确保能正常运行PHP和MySQL程序。 2. **PHP基础**:理解PHP的基本语法,包括变量、数据类型、流程控制语句(如if-else、for、while)、...

    php数据库系统开发参考手册-免费版

    9. 错误处理与调试:教授如何处理PHP与数据库交互过程中可能出现的错误,以及有效的调试技巧。 10. 实战案例:通过实际项目案例,让读者能够将所学知识应用于实践中,增强解决实际问题的能力。 这本免费版的《PHP...

Global site tag (gtag.js) - Google Analytics