第一步:

在 php.ini 中,将 display_errors 设置为 On;

第二步:

在 框架的 开始处,添加如下代码:

<?php
if (isset($_GET['debug'])) {
     // ini_set('display_errors', true);
     //【注意】本来不想到 php.ini 中修改 display_errors 值,但是 在 PHP 代码中设置 display_errors 值不起作用,悲剧!
    error_reporting(E_ALL);
    set_time_limit(0);
} else {
    error_reporting(E_ERROR);
}


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

<?php
/**
* 写文件
*
* @param string $filename 文件名
* @param string $text 要写入的文本字符串
* @param string $openmod 文本写入模式('w':覆盖重写,'a':文本追加)
* @return bool
*/
function file_write($filename = '', $text = '', $openmod = 'w') {
if (@$fp = fopen($filename, $openmod)) {
flock($fp, 2);
fwrite($fp, $text);
fclose($fp);
return true;
} else {
return false;
}
} /**
* 写对象(包括 数字、字符串、数组)
* 【注意:临时调试用而已!】
*
* @param string $text 要写入的文本字符串
* @param string $type 文本写入类型('w':覆盖重写,'a':文本追加)
* @param bool $isVarExport 是否变量导出
* @return bool
*/
function write2($text = '', $type = 'a', $isVarExport = false) {
$filename = __DIR__ . '/write2.txt'; $text = (is_array($text) && $isVarExport) ? var_export($text, true) : print_r($text, true);
$text = "++++++++++++++++++++++++++++++++++++++++++\r\n"
. date('Y-m-d H:i:s') . "\r\n"
. $text . "\r\n"; return file_write($filename, $text, $type);
}

今后,直接用write2('xxx');函数即可。

另外,也可用“file_put_contents”去写文本

$data222 = $arr;

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

延伸阅读:

【总结1】PhpStorm配置XDebug(远程)调试PHP

PHP通过ini_set()来设置显示错误信息和执行时间

PHP打印测试,PHP调试技巧的更多相关文章

  1. iOS各种调试技巧豪华套餐

    转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...

  2. xcode的调试技巧

    转自:http://www.cnblogs.com/daiweilai/p/4421340.html#biyouji 目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global ...

  3. 一探前端开发中的JS调试技巧

    前言 调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...

  4. iOS 开发调试技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  5. 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  6. iOS 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  7. JavaScript调试技巧

    熟悉工具可以让工具在工作中发挥出更大的作用.尽管江湖传言 JavaScript 很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug. 文中已经列出了14个你可能不知道的调试技巧,但是 ...

  8. 前端开发中的JS调试技巧

    前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...

  9. Chrome - JavaScript调试技巧总结(浏览器调试JS)

    Chrome 是 Google 出品的一款非常优秀的浏览器,其内置了开发者工具(Windows 系统中按下 F12 即可开启),可以让我们方便地对 JavaScript 代码进行调试. 为方便大家学习 ...

  10. 《Debug Hacks》和调试技巧【转】

    转自:https://blog.csdn.net/sdulibh/article/details/46462529 Debug Hacks 作者为吉冈弘隆.大和一洋.大岩尚宏.安部东洋.吉田俊辅,有中 ...

随机推荐

  1. Freemarker与普通java

    package com.sxt.test.freemarker; import java.io.File; import java.io.OutputStreamWriter; import java ...

  2. Visual Studio 2013支持Xamarin的解决方案

    转自博客园[遗忘的代码] Xamarin的Visual Studio插件目前还不支持VS 2013,所以需要在安装Xamarin的VS插件时把2010和2012全选上 (由于我的电脑里只剩2013,而 ...

  3. ThinkPHP常用配置路径

    //系统常量定义 //去THinkPHP手册中进行查找 echo "<br>"."网站的根目录地址".__ROOT__." "; ...

  4. TCP协议的三次握手和四次挥手

    暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN= ...

  5. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自:[张 ...

  6. VS 报cmath(19): error C2061: 语法错误: 标识符“acosf” 错误

    这是因为我在.c文件中用了 #include <iostream> using namespace std; 这样编译的时候就报: 出现错误类型如下:1>c:\program fil ...

  7. 开源任务管理平台TaskManagerV2.0介绍及升级说明

    上一篇开源任务管理平台TaskManager介绍发布后,有网友联系我看看能不能做个后台管理界面,方便管理系统中所有的任务.由于时间和技术问题1.0版本的时候,新增了一个3分钟读取配置文件动态修改任务的 ...

  8. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  9. 87 resize2fs-增大或者收缩未加载的“ext2/ext3”文件系统的大小

    resize2fs命令被用来增大或者收缩未加载的"ext2/ext3"文件系统的大小.如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize., ...

  10. 动态获取div的高度 随着窗口变化而变化

    // 1.jq法 <script> var winHeight = $(window).height(); $("#show").css("height&qu ...