(附加四)PHP常用功能块.ppt

上传人:max****ui 文档编号:3281283 上传时间:2019-12-10 格式:PPT 页数:27 大小:1,004KB
返回 下载 相关 举报
(附加四)PHP常用功能块.ppt_第1页
第1页 / 共27页
(附加四)PHP常用功能块.ppt_第2页
第2页 / 共27页
(附加四)PHP常用功能块.ppt_第3页
第3页 / 共27页
点击查看更多>>
资源描述
附加四PHP常用功能模块,预习检查,在PHP程序中错误发生一般归属于哪些领域?写入日志的方式有哪两种,如何配置?什么是UNIX时间戳?我们如何使用date()函数格式化时间?,本章任务,1.PHP的错误处理2.PHP的时间和日期,1.PHP的错误处理,1.1错误报告级别1.2调整错误报告级别1.3使用trigger_error()函数来替代die()1.4自定义错误处理1.5写错误日志,1.1错误报告级别,PHP程序的错误发生一般归属于下列三个领域:语法错误:语法错误最常见,并且也容易修复。如:代码中遗漏一个分号。这类错误会阻止脚本的执行。运行时错误:这种错误一般不会阻止PHP脚本的执行,但会阻止当前要做的事情。输出一条错误,但php脚本继续执行逻辑错误:这种错误最麻烦,既不阻止脚本执行,也不输出错误消息。一个异常(后面面向对象时会讲)则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行。,PHP的错误报错级别,1.2调整错误报告级别,display_errors:是否开启PHP输出错误报告的功能值为:On(默认输出错误报告)、Off(屏蔽所有错误信息)在PHP脚本中可调用ini_set()函数,动态设置php.ini配置文件.如:ini_set(display_errors,On);/显示所有错误信息error_reporting:设置不同的错误报告级别。error_reporting=E_ALL,测试错误报告测试错误报告,确定PHP错误报告行为的配置指令,1.3使用trigger_error()函数来替代die(),首先函数die()等同于exit(),两者如果执行都会终止PHP程序,而且可以在退出程序之前输出一些错误报告。trigger_error()则可以生成一个用户警告来代替,使程序更具有灵活性。例如,trigger_error(“没有找到文件”,E_USER_ERROR)。使用trigger_error()函数来替代die(),你的代码在处理错误上会更具优势,对于客户程序员来说更容易处理错误。,1.4自定义错误处理,自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理。可以记下错误的信息,及时发现一些生产环境出现的问题可以屏蔽错误。可以控制错误的输出。可以作为调试工具。使用set_error_handler()函数来设置用户自定义错误处理。,%s:%sin%sonline%dn,$error_type,$error_message,$file,$line);/若出现错误则跳转到友好错误提示页面if(TRUE=$EXIT)echolocation=er.html;,通过上面测试代码可以很好解决安全和调试方面的矛盾,但注意E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING是不会被这个句柄处理的,也就是会用原始的方式显示,不过通常情况下不会发生。使用set_error_handler()后,error_reporting()将会失效。也就是所有错误都是由自定义的函数处理。,error_reporting(0);/屏蔽程序中的错误set_error_handler(error_handler);/这个才是关键点,把错误的处理交给error_handler()echo$novar;/使用末定义的变量要报notice的echo3/0;/除以0要报警告的trigger_error(Triggerafatalerror,E_USER_ERROR);/自定义一个错误?,1.5写错误日志,两种方式记录错误日志:使用指定的文件记录错误报告日志错误日志记录到操作系统的日志里,使用指定的文件记录错误报告日志,1、先配置php.ini:error_reporting=E_ALL/将向PHP发送每个错误display_errors=Off/不显示错误报告log_errors=On/决定日志语句记录的位置log_errors_max_log=1024/每个日志项的最大长度error_log=G:/myerror.log/指定错误写进的文件2、使用函数:在php文件中使用error_log()来记录日志,就可以将信息写入到myerror.log文件中如:error_log(登录失败了!);,使用指定的文件记录错误报告日志,错误日志记录到操作系统的日志里,1、先配置PHP.ini文件中error_reporting=E_ALL/将向PHP发送每个错误display_errors=Off/不显示错误报告log_errors=On/决定日志语句记录的位置。log_errors_max_log=1024/每个日志项的最大长度error_log=syslog/指定到系统日志中。2、使用四个函数来记录日志:define_syslog_variables();/为系统日志初始化配置openlog();/打开一个日志链接syslog();/发送一条日志记录closelog();/关闭日志链接,错误日志记录到操作系统的日志里,查看日志:如windows系统,通过右击“我的电脑”-选择管理选项-在系统工具菜单中选择事件查看器-在应用程序选项中即可看到日志了。,2.PHP的日期和时间,2.1UNIX时间戳2.2在PHP中获取日期和时间2.3修改PHP的默认时区2.4使用微妙计算PHP脚本执行时间,2.1UNIX时间戳,Unix时间戳:自从Unix纪元(格林威治时间1970年1月1日00:00:00)到当前时间的秒数.相关函数:time():函数返回一个当前系统的时间戳mktime():取得一个日期的Unix时间戳格式:intmktime(时,分,秒,月,日,年,is_dst区);注意:is_dst参数表示是否为夏时制,PHP5.10后此参数已废除。strtotime():将任何英文文本的日期时间描述解析为Unix时间戳格式:intstrtotime(string$time,int$now),?phpechodate(Y-m-d,strtotime(now);/输出:2012-04-05echodate(Y-m-d,strtotime(8may2012);/输出:2012-05-08echodate(Y-m-d,strtotime(+1day);/输出:2012-04-06echodate(Y-m-d,strtotime(lastmonday);/输出:2012-04-02$now=strtotime(now);/当前时间$endtime=strtotime(2014-08-1808:08:08);/设定毕业时间,转成时间戳$second=$endtime-$now;/获取毕业时间到现在时间的时间戳(秒数)$year=floor($second/3600/24/365);/从这个时间戳中换算出年头数$temp=$second-$year*365*24*3600;/从时间戳中去掉整年的秒数,就剩下月份的秒数$month=floor($temp/3600/24/30);/从这个时间戳中换算出月数$temp=$temp-$month*30*24*3600;/从时间戳中去掉整月的秒数,就剩下天的秒数$day=floor($temp/3600/24);/从这个时间戳中换算出剩余的天数$temp=$temp-$day*3600*24;/从时间戳中去掉整天的秒数,就剩下小时的秒数$hour=floor($temp/3600);/从这个时间戳中换算出剩余的小时数$temp=$temp-$hour*3600;/从时间戳中去掉整小时的秒数,就剩下分的秒数$minute=floor($temp/60);/从这个时间戳中换算出剩余的分数$second1=$temp-$minute*60;/最后就只有剩余的秒数了echo距离培训毕业还有$year年$month月$day天$hour小时$minute分$second1秒;,2.2在PHP中获取日期和时间,getdate-取得日期时间信息格式:arraygetdate(inttimestamp)返回一个根据timestamp得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:,2.3日期和时间的格式化输出,date-格式化一个本地时间日期格式:stringdate(stringformat,inttimestamp)返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()(当前时间戳)。例如:echodate(“Y年m月d日H:i:s”);/2010年10月28日14:22:28常用参数:Y:四位数年m:月01-12n:月1-12d:天01-31j:天1-31H:时24时制h:小时12制i:分钟00-59s:秒00-59w:星期几0-6A:上午AM或下午PMa:上午am或下午pm。,2.4修改PHP的默认时区,修改PHP的默认时区有两种方式:1、修php.ini配置文件:date.timezone=Etc/GMT+82、date_default_timezone_set():-设定用于一个脚本中所有日期时间函数的默认时区。如:date_default_timezone_set(“PRC”);/中国时区。date_default_timezone_get():-获取当前时区,2.5使用微秒计算PHP脚本执行时间,microtime-返回当前Unix时间戳和微秒数格式:mixedmicrotime(boolget_as_float)microtime()当前Unix时间戳以及微秒数。本函数仅在支持gettimeofday()系统调用的操作系统下可用。如果调用时不带可选参数,本函数以msecsec的格式返回一个字符串,其中sec是自Unix纪元(0:00:00January1,1970GMT)起到现在的秒数,msec是微秒部分。字符串的两部分都是以秒为单位返回的。如果给出了get_as_float参数并且其值等价于TRUE,microtime()将返回一个浮点数。,总结,本章必须掌握的知识点:修改错误等级写错误日志UNIX时间戳计算和各种格式的转换获取和并能格式化日期可以修改PHP的默认时间微秒的使用了解错误报告级别类型了解如何自定义错误,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!