PHP5
PHP5,是PHP官方于2004年7月,发布的一个全新的版本,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。
在不断更新的同时,PHP5依然保留对旧有的PHP4程序可以运行于PHP5的平台上而不会出现较大问题。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。
另外,PHP5中还改进了创建动态图片的功能,目前能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。
大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。
今天,已经有包括Yahoo.com和Amazon.com等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。从最初的PHP/FI到现在的PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。
PHP5特点[ ]
PHP有着简单易用和功能强大的特点,这完全要归功于其开放的模块化设计。在基于Zend引擎的支持和优化下,各种各样的扩展模块,其功能已经覆盖几乎所有的Web应用。
字符串与数组处理[ ]
字符串和数组是所有计算机编程语言中最基本的数据结构。在各种语言中,对这两种数据结构的支持是完善的,PHP也是如此。作为一种面向Web开发的程序语言,PHP也有着自己的独特性。
- URL的处理:利用URL函数库,PHP可以用简单的方法对URL地址进行解码或编码。而在此之前,需要编写一组代码加以实现。
- 单词拼写的处理:利用单词拼写检查库PSpell,PHP可以想Word中的“单词拼写检查”一样,对文本中的错误拼写进行指正。尽管这不常用,但对于某些场合(如辅助编辑进行校勘),这种处理是非常有益的。
- 正则表达式:正则表达式是一种强大的字符串分析工具。正则表达式早期仅用于UNIX系统程序,现在已经被绝大多数系统,程序所支持。随着正则表达式移植到交叉平台的程序语言的发展,其功能也日益完善。
- 数据的串行化:使用serialize()及unserialize()等函数,可以将数组、对象等数据进行序列化编码,从而方便其在数据库或会话周期中的存储。另外,利用WDDX(Web分布式数据格式)串行化数据,可以在应用环境中交换更为复杂的数据结构。
目录与文件的操作[ ]
文件系统是操作系统的主要组成部分,是数据存储的基本单元。利用目录和文件函数,PHP可以对本地文件系统进行直接操作,如对文件或目录进行的创建、删除和读取操作,也可以对其所有者权限、组别等信息进行查询和变更操作。
当激活了php.ini文件中的“allow_url_fopen”选项后,利用简单的 fopen()或fwrite()等函数就可以对远程文件进行操作。例如:程序可以读取或下载远程Web服务器的文件;对于具有适当权限的用户,还可以登录远程FTP服务器进行数据的保存或下载操作,甚至可以使用syslog()函数进行分布式日志的管理和维护。
对不同类型文件的支持[ ]
PHP不仅仅局限于HTML和文本文件的处理,也可以符合特定格式的文件进行快速处理。例如对于CVS(逗号分隔文件)、INI(Windows配置文件)以及XML文件,PHP中都有专用的解析函数。除了上述文本文件,PHP还提供可以读取 ZIP文件的zlib压缩文件库。
PHP能够非常简便的输出文本,如XHTML以及任何其他形式的XML文件。PHP还能动态的输出图像(GD2库)、PDF文件(PDFLib库)甚至Flash动画(LibSWF和Ming库)。在Windows系统中,PHP能够在服务器端开辟出一块动态的缓存空间,从而直接打印这些文件(使用Printer扩展)。
简便的数据库操作[ ]
PHP最显著的特征之一,是它支持很大范围的数据库系统。用户会发现,利用PHP编写基于数据库支持的动态网页简单得难以置信。目前,PHP支持如下所示的数据库系统。
Adabas D dBase Empress FilePro(只读) Hyperwave IBM DB2 Informix Ingres InterBase FrontBase MSQL Direct MS-SQL MySQL ODBC Oracle Ovrimos PostgreSQL SQLite Solid Sybase Velocis UXIX dbm
对各种协议的支持[ ]
通常,用户在编程过程中还会涉及到各种不同接口之间的通信问题,如打开文件并读取,或者建立一个套接字(Socket)连接发送数据。这些过程都是基于各种通信协议完成的。所谓通信协议,实际就是系统间发送和接受数据时所遵循的特定方法。
PHP支持诸如FTP、LDAP、IMAP、NNTP、POP3、HTTP、COM(Windows环境)等大量的通信协议。PHP还可以开放原始网络端口,使得任何其他的协议能够协同工作。PHP支持和所有Web开发语言之间的 WDDX复杂数据交换。目前,PHP已经支持了对Java对象的使用,并且可以将它们自由的用作PHP对象。
PHP5普及状况[ ]
PHP5发布3年后,PHP4仍然在为各大虚拟主机提供服务,大量主机hosting上还是永远的php4。之所以造成这种情况,有着多方面的原因。
2007年7月5日,一个PHP开发者联盟宣布,作为共同使PHP开发者社区完全迁移到PHP的5版本的努力的一部分,一些主要的开源PHP项目从2008年2月5日起在他们即将发布的软件中将放弃支持PHP旧的版本。
作为配合GoPHP5.org努力的一部分,Symfony, Typo3, phpMyAdmin, Drupal, Propel, 和Doctrine这些项目已经都宣布2008年2月5日以后他们的下一个版本将需要PHP5.2,而且已经向其它PHP项目和应用发出了公开邀请,包括开源的和非开源的,希望他们参与到这项努力中来。
许多基于PHP的网站应用现在既有运行PHP4的,也有运行PHP5的。PHP4在2000年发布,并且迅速巩固了作为统治性的网络开发语言的地位。PHP5发布于2004年,它在功能上有显著的改进,但是主要由于许多新平台发布伴随着“鸡和蛋”的问题,它发展很慢。
首先PHP开发者还没摸透在没有php4的情况下,用php5来跑从前的应用会不会有潜在的问题。大量主机上仍然安装的是php4,这会使用户避免选择 php5 only的web应用程序。也是因为这个原因,大量主机商还不能马上升级到php5,因为他们不知道用户将要跑php4或是php5的web应用。这样一来,php的开发者越发不能摆脱php4,他们为了适应环境,写出来的代码可能都是php4/php5兼容的。
这对php开发者来说,是如同梦魇一般的一个死循环。一些open source的php开发团体为了摆脱这个困境,终于决定做出一些动作来打破僵局了!!他们在2008年2月份以后发布程序将仅仅官方的支持php 5.2.0以后的版本(官方的支持意味着某些程序还是能保持php4的兼容性的,但是不承诺)!!这个活动被称之为GoPHP5!!这些php开发团体已知的名单如下:
自从推办goPHP5,已经有超过 100 个软件开发项目和超过 200 个网络主机支援 PHP 5.2。相对从前,现在可以轻松地找到托管解决方案,软件开发商亦可以使用 PHP 5 具吸引力的新功能,而不需要担心他们的用户别无选项。
对于用户来说,使用php4或者php5无关紧要,他需要的仅仅是他的程序可以run。那么列表中拥有大量用户基础的php程序的转向,将会是驱动主机商升级到php5的极大动力。