用实例分析PHP5异常处理

用实例分析PHP5异常处理,第1张

<php

/

■一PHP5的异常处理

PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw

语句抛出并被 catch 语句捕获。需要进行异常处理的代码都必须放入 try 代码块内,以

便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。使用多个 catch

可以捕获不同的类所产生的异常。当 try 代码块不再抛出异常或者找不到 catch 能匹配

所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。当然,PHP

允许在 catch 代码块内再次抛出(throw)异常。

当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续

执行,而 PHP 就会尝试查找第一个能与之匹配的 catch。如果一个异常没有被捕获,而

且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一

个严重的错误,并且输出 Uncaught Exception (未捕获异常)的提示信息。

/

<php

/

Exceptionphp

■二PHP5内置的异常类的属性与方法

以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。

/

class Exception{

protected $message = 'Unknown exception'; // 异常信息

protected $code = 0; // 用户自定义异常代码

protected $file; // 发生异常的文件名

protected $line; // 发生异常的代码行号

function __construct($message = null, $code = 0);

final function getMessage(); // 返回异常信息

final function getCode(); // 返回异常代码(代号)

final function getFile(); // 返回发生异常的文件名

final function getLine(); // 返回发生异常的代码行号

final function getTrace(); // backtrace() 数组

final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息

可重载的方法

function __toString(); // 可输出的字符串

}

<php

/

syntax php

/

//■三语法结构以及分析

//PHP有两种抛出异常的格式,如下

//1trycatch

try {

//实行可能有异常的操作,比如数据库错作,文件错作

}catch (Exception $e){

//打印错误信息

}

PHP以前是PersonalHomePage的简称,现在的官方全称是HypertextPreprocessor(超文本预处理器)。PHP是一种CGI(公共网关接口),也是服务器端嵌入的HTML脚本语言,它因为高效、简洁的支持数据库,所以广泛地应用于动态网页的制作。PHP是一种免费软件,它能运行在包括Windows、Linux等在内的绝大多数操作系统环境中,常与免费Web服务软件Apache和免费数据库Mysql配合使用于Linux平台上,具有最高的性能价格比,号称“黄金组合”。

从脚本语言角度来说,同样是CGI语言,PHP与传统的CGI语言相比,最大的不同点是它可以与HTML代码存放与一个文件中,输出时由服务器对PHP代码进行解释,然后将结果替换嵌入脚本语句的位置,并同原有的HTML代码一起发到客户端。其他的CGI语言多半是要与HTML分别存放在不同文件中,然后输出全部HTML页面内容。而且它支持许多流行的数据库,包括MySQL、PostgreSQL、Oracle、Sybase、Informix和MicrosoftSQLServer。

PHP使用嵌入式脚本有许多好处,它易学易用,代码容易维护。它还有一个最大的特点,就是它的源代码是公开的,这一特点使得PHP的安全性、可移植性、可扩充性都得到突出的表现。因为它有多种系统语言的支持,因此可以说PHP是最具活力的CGI语言,它的前途是不可限量的。

总的来说,PHP非常适合Web上的工作。它的的优点是:

一它是专为基于Web的问题而设计的而且它是开放源码。如果需要运行一个具有动态内容、数据库交互和电子贸易的网站,那么PHP在这方面是非常有用

二PHP还有一个学习计算机语言最重要的一点易学好用。学习PHP的过程非常的简单。与Java和Perl不同,你努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够嵌入HTML,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。

三PHP的另一个区别与其他语言的特点就是功能全面。PHP的功能包括图形处理、编码与解码、压缩文件处理、XML解析、支持HTTP的身份认证、Cookie、POP3、SNMP等。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。

四它是面向对象的一种编程方式。PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

五PHP具有可伸缩性。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。

PHP(Hypertext),超文本预处理器,是一种通用性开源脚本语言。它的语法吸取了C语言、Java和Perl的优点,免费、快捷、高效,主要适用于Web开发领域。

目前,全球5000万互联网网站60%以上都在使用PHP技术,AlexaTOP500中国网站排名中有394家使用PHP,国内80%以上动态网站使用PHP进行开发,在Web后端语言中PHP全球市场语言占有率达到80%。

像Facebook、Google、新浪、百度、YouTube、腾讯都在使用PHP。

PHP语言的八大优势:

1、开放源代码,所有的PHP源代码事实上都可以得到。

2、免费性,php和其它技术相比,PHP本身免费且是开源代码。

3、快捷性,程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。

4、跨平台性强,由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS下。

5、专业专注,PHP支持脚本语言为主,同为类C语言。

6、效率高PHP消耗相当少的系统资源。

7、面向对象,在php4,php5中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

8、图像处理,用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用magick进行图像处理。

PHP的3种常用运行方式:CGI、FastCGI、。

1、CGI

CGI即通用网关接口(commongatewaginterface),它是一段程序,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。

2、FastCGI

fast-cgi是cgi的升级版本,FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次。PHP使用PHP-FPM(FastCGIProcessManager),全称PHPFastCGI进程管理器进行管理。

但每一个Web请求PHP都必须重新解析phpini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistentdatabaseconnection)可以工作。

3、

PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。

如何保护自己的PHP代码:

1、代码混淆加密

就是把代码base64加密,然后对base64里的字符串进行字符串映射(随机生成字典混淆)然后eval执行这种百分之百能被破解还原。

2、混淆乱码字符

代码混淆变量还有一些东西和1原理差不多,不过是把字符串换到ascii127到255之间非人类还有编辑器看不懂的字符,结果也是百分之百能被破解和还原,只是时间问题。

3、发放opcode

不分发代码,而是先把PHP代码预编译,分发opcode,PHP7以后opcache深度集成这个东西PHP7以后可以用这个方法保护源码,但是也会被opcode反编译回去也会被破解。

4、混淆加密写PHP扩展

混淆加密写PHP扩展,但是只要是开源的PHP扩展都会被破解,除非自己写加密算法,把PHP代码加密,然后自己拿C语音写扩展闭源,别人不知道你加密思路和破解思路,被破解的可能性很小。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/langman/541904.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-03
下一篇2023-07-03

发表评论

登录后才能评论

评论列表(0条)

    保存