PHP5

生活百科 2023-01-26 08:57生活百科www.aizhengw.cn

PHP5

2004年7月,PHP5正式版本的发布,标誌着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模组的支持。

基本介绍

  • 中文名超文本预处理器
  • 外文名Hypertext Preprocessor
  • 缩写PHP5
  • 类属简便易用的脚本语言

语言简介

PHP是“PHPHypertext Preprocessor”的缩写,即“超文本预处理器”。PHP是一种功能强大,并且简便易用的脚本语言。
PHP

PHP

PHP是一种简单、轻便的伺服器端脚本语言。PHP最初是作为一个快速、实用的工具包出现的。1994年,为了在自己的网站上增加一个小巧而实用的访客追蹤系统,Rasmus Lerdorf编写了PHP的雏形程式。这是一个用Perl封装的简单工具。由于使用效果并不理想,Rasmus又用C语言重写了这个工具。
后来,更多的人注意到这个轻巧而简便的程式,并且要求增加更多的功能。Rasmus决定发布一个完整的版本,将其命名为Personal Home Page Tools。后来,Rasmus又发布了一个名为FI的可以做SQL查询的工具。

PHP2

1996年Rasmus发布了PHP/FI2.0,这是一个基本完善的PHP程式包。它不仅可以访问资料库,而且可以嵌入HTML页面。此时,PHP/FI2.0以及吸引了大量的程式开发人员。在众多程式设计师之中,也包括了Zeev Suraski和Andi Gutmans,他们就是后来PHP3的始作者。由于不满足于PHP/FI在大型项目中的表现,Zeev和Andi作了重大的改进。

PHP3

1998年末,PHP3的第一个官方正式版本发行,其特色是具有更好的执行效果以及更清晰的结构。除此之外,PHP3的强大的功能还在于它的可扩展性。除了给最终用户提供资料库、协定和API的基础结构,它的可扩展性吸引了大量的开发人员加入并提交新的模组。
这个全新的语言伴随着一个新的名称发布。这个名称更具广泛意义,而不仅局限于“个人主页工具”的概念。它被命名为简单的缩写“PHP”。这是一种递归的缩写,它的全称是——PHPHypertext Preprocessor。
不久,Zeev Suraski和Andi Gutmans投入到了全新的PHP的开发之中。设计目标是增强程式运行性能和PHP自身代码的模组性。

PHP4

新的PHP核心被成为“Zend”(以Zeev和Andi的名字命名)引擎,于2000年5月随着新版PHP4.0发布。PHP4的性能较PHP3有着显着的提高。相同的脚本在PHP4中运行,最高可以有近10倍的性能提升。并且Zend提供了的脚本最佳化器,可以把源程式转为二进制编译代码,提高性能的,也保护了程式源码不被暴露。
在PHP4中增加了对各种Web伺服器(如Apache、IIS/PWS及OmniHTTPd等)的支持。,PHP4还增加了一些新的语言特性,如丰富的数组操作函式、完整的会话机制、对输出快取的支持等。PHP4也对一些跨平台的技术提供了扩展支持,如对Adobe PDF、SWF、Java、Microsoft . NET等技术的支持。
PHP4还增加了对类与对象的支持。儘管PHP4在这方面并不完善,但还是大大改善了对面向对象程式设计的支持。PHP4中的Pear库(PHP Extension and Application Repository)就是面向对象的套用与实践的最好例证。

PHP5

儘管PHP4的发展是如此迅猛,但较之于其他流行的开发语言还是缺乏一些关键的功能特性,比如,PHP4中的面向对象功能并不完善,也无法实现异常(Exception)的捕捉与处理。在一些特殊问题的处理上还是捉襟见肘的。
2004年7月,PHP5正式版本的发布,标誌着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模组的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程式设计师不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。
在不断更新的,PHP5依然保留对旧有的PHP4程式可以运行于PHP5的平台上而不会出现较大问题。随着MySQL资料库的发展,PHP5还绑定了新的MySQLi扩展模组,它提供了一些更加有效的方法和实用工具用于处理资料库操作。这些方法大都以面向对象的方式实现,也极大地提高了基于资料库的Web项目的执行速度。
PHP5
,PHP5中还改进了创建动态图片的功能,能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。
大多数Web程式开发者依然将XML作为一个彻底的简单资料库使用。PHP5中也採用了一系列简单易用、功能强大的方法处理XML文档。
今天,已经有包括雅虎和亚马逊等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。从最初的PHP/FI到PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。

GO PHP5

PHP5发布3年后,PHP4仍然在为各大虚拟主机提供服务,大量主机hosting上还是永远的php4。之所以造成这种情况,有着多方面的原因。
2007年7月5日,一个PHP开发者联盟宣布,作为共同使PHP开发者社区完全迁移到PHP的5版本的努力的一部分,一些主要的开源PHP项目从2008年2月5日起在他们即将发布的软体中将放弃支持PHP旧的版本。
作为配合努力的一部分,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兼容的。
goPHP5
这对php开发者来说,是如同梦魇一般的一个死循环。一些open source的php开发团体为了摆脱这个困境,终于决定做出一些动作来打破僵局了!!他们在2008年2月份以后发布程式将仅仅官方的支持php 5.2.0以后的版本(官方的支持意味着某些程式还是能保持php4的兼容性的,不承诺)!!这个活动被称之为GoPHP5!!这些php开发团体已知的名单如下
Drupal
Joomla
CakePHP
Symfony
Gallery
WordPress
自从推办goPHP5,已经有超过 100 个软体开发项目和超过 200 个网路主机支援 PHP 5.2。相对从前,现在可以轻鬆地找到託管解决方案,软体开发商亦可以使用 PHP 5 具吸引力的新功能,而不需要担心他们的用户别无选项。
对于用户来说,使用php4或者php5无关紧要,他需要的仅仅是他的程式可以run。那幺列表中拥有大量用户基础的php程式的转向,将会是驱动主机商升级到php5的极大动力。

PHP特点

字元串与数组处理
字元串和数组是所有计算机程式语言中最基本的数据结构。在各种语言中,对这两种数据结构的支持是完善的,PHP也是如此。作为一种面向Web开发的程式语言,PHP也有着自己的独特性。
PHP有着简单易用和功能强大的特点,这完全要归功于其开放的模组化设计。在基于Zend引擎的支持和最佳化下,各种各样的扩展模组,其功能已经覆盖几乎所有的Web套用。
URL的处理
利用URL函式馆,PHP可以用简单的方法对URL地址进行解码或编码。而在此之前,需要编写一组代码加以实现。
正则表达式
正则表达式是一种强大的字元串分析工具。正则表达式早期仅用于UNIX系统程式,现在已经被绝大多数系统,程式所支持。随着正则表达式移植到交叉平台的程式语言的发展,其功能也日益完善。
单词拼写的处理
利用单词拼写检查库PSpell,PHP可以像Word中的“单词拼写检查”一样,对文本中的错误拼写进行指正。儘管这不常用,但对于某些场合(如辅助编辑进行校勘),这种处理是非常有益的。
数据的串列化
使用serialize()及unserialize()等函式,可以将数组、对象等数据进行序列化编码,从而方便其在资料库或会话周期中的存储。,利用WDDX(分散式数据格式)串列化数据,可以在套用环境中交换更为複杂的数据结构。
对不同类型档案的支持
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支持如表1-1所示的资料库系统。
表1-1 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
目录与档案的操作
档案系统是作业系统的主要组成部分,是数据存储的基本单元。利用目录和档案函式,PHP可以对本地档案系统进行直接操作,如对档案或目录进行的创建、删除和读取操作,也可以对其所有者许可权、组别等信息进行查询和变更操作。
当激活了phpini档案中的“allow_url_fopen”选项后,利用简单的 fopen()或fwrite()等函式就可以对远程档案进行操作。例如程式可以读取或下载远程Web伺服器的档案;对于具有适当许可权的用户,还可以登录远程FTP伺服器进行数据的保存或下载操作,甚至可以使用syslog()函式进行分散式日誌的管理和维护。

协定支持

通常,用户在编程过程中还会涉及到各种不同接口之间的通信问题,如打开档案并读取,或者建立一个套接字(Socket)连线传送数据。这些过程都是基于各种通信协定完成的。所谓通信协定,实际就是系统间传送和接受数据时所遵循的特定方法。
PHP支持诸如FTP、LDAP、IMAP、NNTP、POP3、HTTP、 COM(Windows环境)等大量的通信协定。PHP还可以开放原始网路连线埠,使得任何其他的协定能够协同工作。PHP支持和所有Web开发语言之间的 WDDX複杂数据交换。目前,PHP已经支持了对Java对象的使用,并且可以将它们自由的用作PHP对象。

发展趋势

PHP作为最成熟的开源体系LAMP(Linux,Apache,MySQL,PHP)的重要一员,以其简单性、开放性、低成本、安全性和适用性,受到越来越多的Web程式设计师的欢迎和喜爱。
PHP中提供了作为编码语言所有的基本功能。,它还提供许多实用的功能,使得PHP比其他程式语言更适合动态网页的开发。针对企业级Web套用,PHP也不断地完善和增加新的功能。
PHP是源码开放的,这意味着其代码的核心部分可以被免费使用。所有源码、文档可以在PHP官方网站上获得。用户可以自由複製、编译、分发其拷贝。任何一个用PHP编写的程式都属于用户自己,并且可以自行处理。
正式由于这种开源精神,才使PHP社区可以聚集众多的爱好者,也使得PHP有如此迅猛的发展。PHP的更新速度,以及发现和修正错误的速度是非常迅速的。可以看到,几乎每周都有一个新版本的PHP程式包发布。
目前,PHP的官方维护者和推动者Zend公司已经加快了PHP企业级套用的步伐。随着PHP5的套用不断扩大,Zend公司还将推出一个标準的PHP开发框架Zend Framework。通过这一框架,PHP开发者可以快速地构建Web套用。
PHP还具有优秀的平台兼容性。PHP源于UNIX系统平台,尤其是PHP、MySQL、 Apache和Linux组合,备受PHP爱好者的欢迎。不仅如此,PHP在Windows系列作业系统上也有出色的表现。其良好的程式界面、语言易用性等特点吸引了微软的开发人员。目前,有讯息称未来的Windows . NET开发环境将集成PHP,这也意味着PHP的用户群将日益壮大。
如同ASP具有Windows自己的开发平台一样,Zend也为PHP设计了全新的开发环境 Zend Studio。这是一款集程式调试、系统发布以及开发环境为一体的PHP开发软体。这将大大简化PHP开发过程,并且缩短相应的测试周期。,Zend 还将与IBM公司合作推出集成Zend IDE特性的Eclipse软体供大家使用。
PHP是广泛及通用的脚本语言,它尤其适合于Web开发。PHP是世界上主要的网路开发语言之一,运行在世界三分之一的伺服器上。它是从雅虎到Facebook等公司的平台选择,也是共享主机上最广泛的开发平台,为世界上数百万的网站提供动力。
随着PHP5版本性能的提升,以及面向对象功能的完善,PHP也逐渐开始于面向企业级套用。PHP的发展前景将无限广阔。
现在php5的最新版本为php5.4.3,较php5.3增强了安全特性,去掉了一些威胁安全的函式如global_register等,去掉了安全模式。
上一篇:NR-1 下一篇:C#编程实战宝典

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有