异常(接上篇)
一个简单异常处理实例
<span>php </span><span>try</span><span> { $error</span>= <span>'</span><span>Always throw this error</span><span>'</span><span>; </span><span>throw</span><span>new</span><span> Exception($error); </span><span>//</span><span>创建一个异常对象,通过throw语句抛出</span>echo <span>'</span><span>Neverexecuted</span><span>'</span><span>; </span><span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span>} <span>catch</span><span> (Exception $e) { echo </span><span>'</span><span>Caught exception:</span><span>'</span>, $e->getMessage(), <span>"</span><span>\n</span><span>"</span><span>; </span><span>//</span><span>输出捕获的异常消息</span><span>} echo </span><span>'</span><span>Hello World</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span>?>
系统自带异常处理
<span>php classException{ </span><span>protected</span>$message=<span>'</span><span>Unknownexception</span><span>'</span>;<span>//</span><span>异常信息</span><span>protected</span>$code=<span>0</span>;<span>//</span><span>用户自定义异常代码</span><span>protected</span>$file;<span>//</span><span>发生异常的文件名</span><span>protected</span>$line;<span>//</span><span>发生异常的代码行号</span>function__construct($message=<span>null</span>,$code=<span>0</span><span>); finalfunctiongetMessage();</span><span>//</span><span>返回异常信息</span>finalfunctiongetCode();<span>//</span><span>返回异常代码</span>finalfunctiongetFile();<span>//</span><span>返回发生异常的文件名</span>finalfunctiongetLine();<span>//</span><span>返回发生异常的代码行号</span>finalfunctiongetTrace();<span>//</span><span>backtrace()数组</span>finalfunctiongetTraceAsString(); <span>//</span><span>已格成化成字符串</span><span>的getTrace()信息 </span><span>/*</span><span>可重载的方法</span><span>*/</span><span>function__toString();</span><span>//</span><span>可输出的字符串</span><span>} </span>?>
<span>php </span><span>/*</span><span> 自定义的一个异常处理类,但必须是扩展内异常处理类的子类</span><span>*/</span><span>class</span><span> MyExceptionextends Exception{ </span><span>//</span><span>重定义构造器使第一个参数message 变为必须被指定的属性</span><span>public</span> function __construct($message, $code=<span>0</span><span>){ </span><span>//</span><span>可以在这里定义一些自己的代码 </span><span>//</span><span>建议同时调用parent::construct()来检查所有的变量是否已被赋值</span><span>parent::__construct($message, $code); } </span><span>public</span><span> function __toString() { </span><span>//</span><span>重写父类方法,自定义字符串输出的样式</span><span>return</span> __CLASS__.<span>"</span><span>:[</span><span>"</span>.$<span>this</span>->code.<span>"</span><span>]:</span><span>"</span>.$<span>this</span>->message.<span>"</span><span><br></span><span>"</span><span>; } </span><span>public</span><span> function customFunction() { </span><span>//</span><span>为这个异常自定义一个处理方法</span>echo <span>"</span><span>按自定义的方法处理出现的这个类型的异常<br></span><span>"</span><span>; } } </span>?>
自定义异常
<span>php </span><span>try</span> { <span>//</span><span>使用自定义的异常类捕获一个异常,并处理异常</span>$error = <span>'</span><span>允许抛出这个错误</span><span>'</span><span>; </span><span>throw</span><span>new</span><span> MyException($error); </span><span>//</span><span>创建一个自定义的异常类对象,通过throw语句抛出</span>echo <span>'</span><span>Never executed</span><span>'</span>; <span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span>} <span>catch</span> (MyException$e) { <span>//</span><span>捕获自定义的异常对象</span>echo <span>'</span><span>捕获异常: </span><span>'</span>.$e; <span>//</span><span>输出捕获的异常消息</span>$e->customFunction(); <span>//</span><span>通过自定义的异常对象中的方法处理异常</span><span>} echo </span><span>'</span><span>你好呀</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span>?><br>
捕获多个异常
在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。
2 时间戳
2.1 UNIX时间戳
Unix 时间戳:
??自从Unix 纪元(格林威治时间1970 年1 月1 日00:00:00)到当前时间的秒数.
??相关函数:
??使用time( )函数返回一个当前系统的时间戳
??mktime( )--取得一个日期的Unix 时间戳
??格式:intmktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
??注意:is_dst参数表示是否
2.2 在PHP中获取日期和时间
getdate--取得日期/时间信息
??格式:array getdate( [inttimestamp] )
??返回一个根据timestamp得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:
2.3 日期和时间的格式化输出
date--格式化一个本地时间/日期
??格式:string date ( string format [, inttimestamp] )
??返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()(当前时间戳)。
??例如:
echo date(“Y年m月d日H:i:s”);//2010年10月28日14:22:28
Y:四位数年m:月01-12 n:月1-12d:天01-31 j:天1-31
H:时24时制h:小时12制i:分钟00-59 s:秒00-59 w:星期几0-6
A:上午AM或下午PM a:上午am或下午pm。
2.4 修改PHP的默认时区
修改PHP的默认时区有两种方式:
??1、修php.ini配置文件:
??date.timez/GMT+8
??2、使用date_default_timezone_set函数:--设定用于一个脚本中所有日期时间函数的默认时区。
??如:date_default_timezone_set(“PRC”);//中国时区。
??date_default_timezone_get();//获取当前时区
2.5 使用微秒计算PHP脚本执行时间
microtime--返回当前Unix 时间戳和微秒数
??格式:mixed microtime( [boolget_as_float] )
??microtime() 当前Unix 时间戳以及微秒数。本函数仅在支持gettimeofday() 系统调用的操作系统下可用。
??如果调用时不带可选参数,本函数以"msecsec" 的格式返回一个字符串,其中sec 是自Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec是微秒部分。字符串的两部分都是以秒为单位返回的。
??如果给出了get_as_float参数并且其值等价于TRUE,microtime() 将返回一个浮点数。
以上就介绍了PHP常用功能块_异常与时间戳 — php(33),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用会话构建高效购物车系统的步骤包括:1)理解会话的定义与作用,会话是服务器端的存储机制,用于跨请求维护用户状态;2)实现基本的会话管理,如添加商品到购物车;3)扩展到高级用法,支持商品数量管理和删除;4)优化性能和安全性,通过持久化会话数据和使用安全的会话标识符。

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。