您的位置:首页 > 编程语言 > PHP开发

PHP开发过程中的几种调试方法

2014-12-10 18:25 155 查看
1.关于时区的问题

; Defines the default timezone used by the date functions

;date.timezone =



从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的

也就是显示的时间(无论用什么php命令)都是格林威治标准时间

和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。

1,最简单的方法就是不要用php5.1以上的版本

2,如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的

上面加上 date_default_timezone_set (XXX);

cp无此问题

3,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号

= 后面加XXX,重启http服务(如apache2或iis等)即可

也可以自己写个函数来解决此问题

/**

* Format date and time

*

* @param string $format time format

* @param string $time timestamp

*

* @return string

*/

function getDatetime($format = "Y-m-d H:i:s", $time = "") {

setTimezone();

if (empty($format)) $format = "Y-m-d H:i:s";

if (empty($time)) $time = time();

return date($format, $time);

}



function setTimezone($sTimeZone = "PRC") {

if (function_exists('date_default_timezone_set')) {

date_default_timezone_set($sTimeZone); //该函数为PHP5.1内置,这里设置为香港时间。

}

}

2.关于空字符串的测试

$str = '';

var_dump($str === '');

var_dump($str == '');

var_dump($str !== '');

var_dump($str != '');

bool(true) bool(true) bool(false) bool(false)

3.php.ini中几个配置

disable_classes =

;SYS

; 该指令接受一个用逗号分隔的类名列表,以禁用特定的类。

disable_functions =

;SYS

; 该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。

enable_dl = On

;SYS

; 是否允许使用dl()函数。dl()函数仅在将PHP作为apache模块安装时才有效。

; 禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。

; 在安全模式下始终禁用dl()函数,而不管此处如何设置。

; PHP6中删除了该指令,相当于设为Off。

expose_php = On

;SYS

; 是否暴露PHP被安装在服务器上的事实(在http头中加上其签名)。

; 它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了PHP。

open_basedir =

;SYS

; 将PHP允许操作的所有文件(包括文件自身)都限制在此组目录列表下。

; 当一个脚本试图打开一个指定目录树之外的文件时,将遭到拒绝。

; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。

; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。

; 但这有些危险,因为脚本的工作目录可以轻易被chdir()改变。

; 对于共享服务器,在httpd.conf中灵活设置该指令将变得非常有用。

; 在Windows中用分号分隔目录,UNIX系统中用冒号分隔目录。

; 作为Apache模块时,父目录中的open_basedir路径将自动被继承。

; 指定的限制实际上是一个前缀,而非一个目录名,

; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls",

; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线。

; 默认是允许打开所有文件。

output_buffering = 0

; 输出缓冲区大小(字节)。建议值为4096~8192。

; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies)。

; 其代价是输出层减慢一点点速度。

; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。

; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本。

参考:

http://hi.baidu.com/jingweidu/blog/item/82953ffac02b9f1ea9d31124.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: