PHP调试总结
一,环境方面,比如查看安装扩展是否生效,是总支持某扩展。
可以在web目录中建一个phpinfo.php
在里面输入
<?php
phpinfo();
?>
在浏览器上访问一下,会输出PHP相关环境和模块信息。

二,代码错误信息调试。
1,通过设置display_errors,控制PHP发生错误时是否输出错误信息,一般开发环境,可以打开,正式线上环境要关闭。
打开方式:
1),通信修改php.ini文件中的display_errors,如果是Off表示在出错时不输出错误信息,开发环境可以改成:display_errors = On,然后重启apache
2),在PHP代码中开启:在代码开头加上:ini_set("display_errors", "On");
任何需要在php.ini中修改的选项,都可以使用ini_set的方式在代码中修改。

2,设置错误级别
使用error_reporting函数设置错误级别,与上面一样,同样可以修改php.ini或者在代码中设置,这里以代码中设置为例。
error_reporting(0);//禁用错误报告
error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//显示所有错误

一般来说,notice类错误,可以忽略所以常用
error_reporting(E_ALL ^ E_NOTICE);

综合以上两点,通常开发都会在入口文件前面加上这两行,例如:
<?php
//定义一个常量,是否开启调试模式。
define( 'DEBUG' , true );
//如果开启,则打开错误输出和设置错误别为notice以外的,都输出。
if( DEBUG )
{
error_reporting( E_ALL ^ E_NOTICE );
ini_set( 'display_errors' , 'On' );
}
//如果非调试模式,则关闭错误输出和设置错误别为不输出。
else
{
error_reporting( 0 );
ini_set( 'display_errors' , 'Off' );
}

3, 编码问题
开发文档编码和浏览器输出编码,以后mysql编码,统一设置为utf-8格式。
1,notepad++和zend studio都可设置,具体可以百度。
2,输出设置在代码中最前面加上。
header( "Content-type:text/html;charset=utf-8" )

总结:
一般在开发时,在文件执行的开头。加上这一段。
<?php
header( "Content-type:text/html;charset=utf-8" );
define( 'DEBUG' , true );
if( DEBUG )
{
error_reporting( E_ALL ^ E_NOTICE );
ini_set( 'display_errors' , 'On' );
}
else
{
error_reporting( 0 );
ini_set( 'display_errors' , 'Off' );
}

//你的其它代码

?>

PHP调试总结的更多相关文章

  1. C# Web应用调试开启外部访问

    在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...

  2. NodeJs之调试

    关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...

  3. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  4. 写出易调试的SQL(修订版)

    h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...

  5. tomcat开发远程调试端口以及利用eclipse进行远程调试

    一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里:  SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...

  6. Hawk 4.7 单步调试

    单步调试的意义 已经编写的工作流,可能会因为某些外界环境的变化而出错,此时需要排除错误,我们可以使用单步调试. 单步调试的本质,相当于只使用前n个模块,这样就能看到每个步骤下,流的改变. 例子 还是上 ...

  7. Visual Studio 2012远程调试中遇到的问题

    有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...

  8. iOS逆向工程之Hopper+LLDB调试第三方App

    LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...

  9. 写出易调试的SQL

    h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...

  10. linux应用调试技术之GDB和GDBServer

    1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...

随机推荐

  1. 2015GitWebRTC编译实录12

    2015.07.20 libjingle_peerconnection 编译通过[1382/1600 ] CXX obj/talk/app /webrtc/libjingle_peerconnecti ...

  2. HttpSendRequest同步请求不返回

    HttpSendRequest是基于socket实现的 在工作过程中发现当发送请求时 1.当网络没有连接时 会同步返回失败 2.当发送请求时 把网线拔下也是会同步返回失败 3.但是第三种情况 发送请求 ...

  3. postfix启动脚本

    使用该脚本是一定要注意postfix安装路径 #!/bin/bash # # postfix Postfix Mail Transger Agent # # chkconfig: # descript ...

  4. Android 后端 Bmob的使用

    网上发现一个很不错的东西Bmob,推荐给大家使用. Bmob可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息. 如果觉得创建服务器程序比较麻烦 ...

  5. C# 多线程的等待所有线程结束 用 ManualResetEvent 控制

    using System; using System.Collections.Generic; using System.Threading; namespace ConsoleApplication ...

  6. [Java] - 格式字符串替换方法

    Java 字符串格式替换方法有两种,一种是使用String.format(...),另一种是使用MessageFormat.format(...) 如下: import java.text.Messa ...

  7. 10、java中的抽象类

    当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取.这时,只抽取功能定义,而不抽取功能主体. 抽象:看不懂. 抽象类的特点:1,抽象方法一定在抽象类中.2,抽象方法和抽象类都必须被abst ...

  8. < 独立项目 - 文本挖掘 > - 2016/11/13 第二更 - <Python环境准备>

    < 独立项目 -  文本挖掘 > 项目立项的相关背景介绍,TODO方向. 一.Ubuntu环境配置 主机系统:Windows 7 SP1  64位操作系统 | i5-4210 CPU | ...

  9. ADF_Controller系列2_绑定TasksFlow、Region和Routers(Part2)

    2015-02-14 Created By BaoXinjian

  10. 极限编程之TDD

         测试驱动开发(Test-Driven Development,TDD)是通过测试定义所要开发的功能的接口,然后实现功能的开发过程. Test-Driven Development(TDD), ...