码迷,mamicode.com
首页 > Web开发 > 详细

PHP常用功能模块

时间:2015-07-05 18:16:10      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

?

错误异常模块

错误处理

1. 系统定义了一些二进制码,用来表示错误报告的级别:

技术分享

? ? 在 /etc/php5/apache2/php.ini中修改php配置文件,其中display_errors默认为Off,设置为On可以开启PHP输出错误报告功能,在开发时会比较方便,但是在发布时最好关掉,因为会过多泄露网站信息;

? ? 通过修改error_reporting的值,使用位运算符:& | ~,组合多个错误级别,并赋值给error_reporting来默认级别;

? ? 如果不修改默认配置文件,也可以通过ini_set()、error_reporting()这两个函数做相应的操作:ini_set(‘display_errors’,1); error_reporting( E_ALL & ~E_NOTICE ); 等

2. 自定义错误处理:

? ? 除了系统的错误报告之外,可以通过error_reporting(0)屏蔽程序中的错误,并且通过set_error_handler()函数来指定自己定义的错误处理函数,甚至可以给出一个设计优美的错误页面。

技术分享

技术分享

3. 使用错误日志

? ? 通过修改以下配置并且重启web服务器,启用错误日志功能:

? ? error_reporting = E_ALL; ?或者其他级别
? ? display_errors = Off; 关闭错误报告
? ? log_errors = On;打开错误日志
? ? log_error_max_len = 1024; 设置日志项的最大长度
? ? error_log = /your_path_to_log/error.log; 指定日志的完整路径

? ? 同时可以使用内置的error_log()函数,可以自定义错误信息到日志中,该函数相关参数使用:

? ? 第一个为必选参数:message;
? ? 第二个为message_type,为一个整数值,
? ? ? ? 0 表示送到操作系统日志中,此时不需要再传入其他参数;
? ? ? ? 1 表示使用PHP的Mail()函数,发送信息到某个邮箱中,此时需要再指定一个参数,指定发送到的邮箱;
? ? ? ? 2 表示将错误信息发送到TCP服务器中,此时需要指定服务器的地址和端口号;
? ? ? ? 3 表示将错误信息保存到文件中,此时需要指定保存到的文件名;

4. 其他错误日志函数:define_syslog_variables()、openlog()、syslog()、closelog();在调用后面三个函数之前必须调用第一个函数;

异常处理

1. PHP异常处理实现函数:

? ? try{
? ? ? ? //… do something arouse a exception
? ? ? ? throw $exception_obj;
? ? ? ? // …
? ? ? ? // … will never do if excepted
? ? } catch( EX_CLASS $exception_obj ){
? ? ? ? // do something when excepted?
? ? } catch ( EX_CLASS2 $exception_obj ){
? ? ? ? // do something when another exception aroused
? ? }

? ? 可以看到,PHP可以同时捕获多个异常,并根据异常的类型做出不同的处理

2. PHP内置了异常类:Exception,通过继承该类可以自定义自己的异常类,其中,该类可继承的方法和属性为:

技术分享

?

日期和时间

1. UNIX时间戳:UNIX系统保存1970年1月1日零点(UTC/GMT)(该日期通常称为UNIX纪元)开始起到当前时间所经历的秒数,以一个32位整数表示,以至于在表示1902年以前以及2038年以后的时间会遇到一些问题,如果在WINDOWS下,时间戳不能为负数,如果记录1970年之前的时间则必须要做相应处理;

2. 使用mktime()函数,依次传入hour、minute、second、month、day、year,即可得到UNIX时间戳;

? ? 使用strtotime()函数,可以将英语自然语言表述的时间转换为时间戳:

? ? strtotime(‘now’);
? ? strtotime(‘8 may 2012’);
? ? strtotime(‘+1 day’);
? ? strtotime(‘last monday’);

? ? 等等;

3. 使用UNIX时间戳计算时间,只需要将两个时间戳相减即可;

4. 通过getdate()函数,传入一个时间戳,返回一个记录时间/日期的数组,该数组的键名为:seconds、minutes、hours、mday、 wday、mon、year、yday、weekday、month、0;其中mday表示该月中的第几天,wday表示该周中的第几天,yday表示该年中的第几天,weekday表示该周第几天的完整的英文文本、0表示时间戳;

5. 格式化输出:date()函数,该函数传入两个参数,第一个要格式化的格式,第二个为时间戳,如date(‘Y年m月d日 H:i:s’,strtotime(’now’));详细格式代码有:

技术分享

技术分享

?如果要格式化其他语种的日期,应该用setlocal()本地化,和strftime()来代替date()。

6. 修改默认时区:在配置文件中修改date.timezone,北京时间可以设置为以下任意一个:Asia/Shanghai、Asia/Chongqing、Etc/GMT-8、PRC;

? ? 如果不修改配置文件,可以在程序中,使用date_default_timezone_set()函数来设定时区;

7. 在计时应用中,秒为最小单位不够精确,可以使用microtime()函数,该函数传入一个布尔值,默认为false,默认状态下,输出“msec sec”,其中msec是微秒数,sec是时间戳;如果设置为true,则输出一个浮点型,精确到微秒;

PHP常用功能模块

标签:

原文地址:http://www.cnblogs.com/lyon2014/p/4622550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!