原创总结:PHP初学者遇到的页面空白或者报错的问题的解决办法

原创总结:PHP初学者遇到的页面空白或者报错的问题的解决办法

3188发表于2015-10-21

对于PHP初学者在搭建php的环境可能会遇到些问题,今天我就来总结一下页面空白或者报错的问题的解决办法。

环境:Microsoft-IIS/7.5 PHP/5.3.27(Fast-CGI)


一、php的短标签

Parse error: syntax error, unexpected $end in D:\phpnow1.5.6\htdocs\index.php on line 289

PHP报错:Parse error: syntax error, unexpected $end, expecting T_FUNCTION in...
The error may caused by a missing curly bracket in PHP script coding. Beside, it may also caused by error in PHP coding in class definition, as in PHP, a class definition cannot be broke up and distributed into multiple files, or into multiple PHP blocks, unless the break is within a method declaration.


首先要检查是不是缺少了PHP脚本的结束标记, "?>" 或者缺少了 ";"或者是“}”;还有一个原因是一个PHP类的代码不能在多个文件或者多个PHP块。
原来Parse error 提示一般是 语法错误,使用了开放的标签,语句没有结束 也就是编程基本的一些错, 比如没注意 语句结束加 ";" 或者 if(){...} 后面忘了"}"  ;〈?php...?〉忘了“?〉”。仔细检查代码,果然是一处漏掉了“}”,修改程序正常运行.

=============

一般是没有开启php的短标签引起的。

在修改php.ini将short_open_tag属性改为On

short_open_tag = On


然后重启IIS,搞定。

二、php报错开关


页面空白也不报错!

==========

页面空白这种情况一般都是页面报错了,但是在php.ini中没有把错误显示开关开启,因为在生产环境为了服务器的安全,不把错误细节暴露出来,一般都会关闭这个选项。这时我们要打开php的报错,这样才能找到问题所在!同样的要修改php.ini的下面两个选项:
error_reporting = E_ALL | E_STRICT
display_errors = On

然后重启IIS,搞定。


三、system’s timezone settings的时区设置问题

php的It is not safe to rely on the system’s timezone settings的问题


date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead

It is not safe to rely on the system解决方法,其实就是时区设置不正确造成的,本文提供了3种方法来解决这个问题。

实际上,从PHP 5.1.0开始当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息,而又在php中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中如果没有设置部分时间类函数也会强行抛出了这个错误的。

解决办法:

修改php.ini

添加:date.timezone = "Asia/Shanghai"

重启php环境。



小编蓝狐