PHP常见问题

FAQ Alan 10年前 (2014-05-23) 4843次浏览 0个评论 扫描二维码

为什么使用定界符无效或出现报错?
为何通过php输出的中文内容出现乱码?
如何去除Notice级的报错?
时区的相关问题
require(), include(), include_once()和require_once()有什么区别?
如何使用PHP在实现301跳转

为什么使用定界符无效或出现报错?

PHP支持定界符(Delimiter)的使用,这极大的方便了代码的书写,如省去了繁琐的转义、增强了代码可读性等。但定界符的使用对前后空格有着极高的要求,如下图的代码出现了类似这样的报错:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\demo.php on line 8

从截图中我们也可以看出定界符到结尾的代码在编辑器中都是以灰色的字体显示的,本例实际上通过将EOF;前的默认添加的缩进(或称Tab)删除后就可解决报错问题了。
PHP常见问题

为何通过php输出的中文内容出现乱码?

通常出现乱码都是由于字符集的问题所致,目前浏览器大多都支持字符编码的转换(如Chrome下点击Tools>Encoding可指定编码)。但这显然不是解决的方法,如同html可以通过meta标签来指定字符集(Charset)一样(<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />),php中提供了header方法来解决这一问题,如:header(“Content-Type: text/html; charset=utf-8”);虽然简体中文通常使用gb2312,繁体中文有big5,但推荐使用UTF-8,因为这是一种更为各国所接受的国际标准。

如何去除Notice级的报错?

通常Notice所报错误不会影响程序的执行,如Undefined variable之类的报错。这类错误影响用户体验,可通过php.ini中的error_reporting 部分修改系统设置,如error_reporting=E_ALL & ~E_NOTICE,在php文件中也可以进行相应的设置,如error_reporting(E_ALL^E_NOTICE);想去除warning等报错也可使用同样的方法。

时区的相关问题

php所使用的默认使用UTC,和北京时间相差8个小时,在工作中可能会需要使用北京时间或其它时区。可以通过php.ini中的date.timezone来进行系统级别的设定,也可在代码中进行指定,如date_default_timezone_set(“Asia/Shanghai”);其中的值(这里的Asia/Shanghai)可通过http://www.php.net/manual/zh/timezones.php来进行查询。

require(), include(), include_once()和require_once()有什么区别?

require()和include()包含语句就作用上而言没有本质区别,通常可根据习惯有选择使用。但当require()语句包含了不存的文件时,会报出致命错误(Fatal error),下面的语句不会被执行;同样的情况使用include()语句仅会报出警告(warning),余下的代码仍会被执行。而对于require_once()和include_once()而言,顾名思义,在语句执行时,会检测程序中其它地言是否引用了同样的文件,多这个意义上说,这两个语句会消耗更多的系统资源,因为多了一个检测的动作。

解决中文乱码问题

 

如何使用PHP在实现301跳转

可通过如下代码可实现301跳转

精简形式

PHPExcel

准备工作:
PHP版本在5.3以上
下载PHPExcel插件(https://github.com/PHPOffice/PHPExcel),解压缩Classes文件夹到工作目录,可根据习惯重命名为PHPExcel

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址