PHP调试总结
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调试总结的更多相关文章
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Hawk 4.7 单步调试
单步调试的意义 已经编写的工作流,可能会因为某些外界环境的变化而出错,此时需要排除错误,我们可以使用单步调试. 单步调试的本质,相当于只使用前n个模块,这样就能看到每个步骤下,流的改变. 例子 还是上 ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- iOS逆向工程之Hopper+LLDB调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- linux应用调试技术之GDB和GDBServer
1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...
随机推荐
- IIS 发布网站 ashx无法访问
IIS6 问题 1.是否安装相应的.net版本 2.查看.net版本是否一致 3.查看web 服务扩展中.net版本是否允许. 4.添加相应的MIME类型文件 在IIS中右键网站→属性→主目录→配置→ ...
- UICollectionView 图片横向滑动居中偏移量的解决
1.在使用UICollectionView 来显示横向滑动图片的时候,cell与cell之间有间隙,每次滑动后cell都会向左偏移,在使用过这两个方法才解决每次向左偏移的部分. 2.使用方法前不要开启 ...
- 当pip install不能正确安装的时候,try easy_install
当pip install不能正确安装的时候,try easy_install 重复试了几次pip install -r requirements.txt,都在安装pillow的时候失败了,想找这个枕头 ...
- hdu2874 LCA
题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通. 一开始有最短路的想法,但是由于询问有 1e6 组,做 ...
- 2016HUAS_ACM暑假集训2E - I Hate It
又是一个线段树的应用,不过跟上一题(D-排兵布阵)不同的是,这次是求某段区间上的最值,而不是某段区间和.当然,数据更新是必须的.D题注释已经很详细了,所以这题注释少点. 大致题意:给你N个已经排好的学 ...
- SQL级联删除——删除主表同时删除从表——同时删除具有主外键关系的表
create table a(id varchar(20) primary key,password varchar(20) not null) create table b(id int iden ...
- [系统设计/开发] APP密钥签发服务器
公司的信息安全制度要求对产线的APP进行严格的签发管理,确保密钥.密码的安全. 之前的做法是: 建立一台独立的签发主机: 密钥放在签发主机上,由专人管理: 构建系统每构建出一个产线APP,都要手动拷贝 ...
- Perl Sort函数用法总结和使用实例
一) sort函数用法 sort LISTsort BLOCK LISTsort SUBNAME LIST sort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNA ...
- 关于CGContextSetBlendMode: invalid context 0x0的错误
在ios 7的模拟器中,选择一个输入框准备输入时,会触发这个错误,以下是出错详细日志: <Error>: CGContextSetBlendMode: invalid context 0x ...
- thinkphp nginx配置
安装和配置: http://www.cnblogs.com/Bonker/p/4252588.html spawn-fcgi 要先安装和启动:(已过时) sudo spawn-fcgi -a -u ...