走进PHP 无华 2000年 第24期   上网时我们经常会发现,在网易、搜狐、湖南信息港软件库等网站的地址栏中会出现一些像PHP字样的语句,在使用这些网站的搜索、查询、聊天室等功能时尤其明显。那么什么是PHP呢? #1 一、PHP的由来   简单地说,PHP是一种服务器端HTML页面嵌入式脚本描述语言,类似于微软的ASP语言。它从1994年秋天开始“孕育”,创始人是Rasmus Lerdorf。早期没有发布的PHP版本被他用来在自己的网页上跟踪谁参观过他的在线个人简历。第一个PHP版本正式发布于1995年,当时叫做Personal Home Page Tools,它包含了一个非常简单的语法分析引擎,只能理解一些指定的宏和一些主页后台的常见功能,如留言本、计数器和一些其他的素材。在1995年中期,Rasmus重写了这个语法分析引擎并且命名为PHP/FI 2.0版本。FI来源于他所写的另一个可以接受HTML表单数据的程序包,组合了Personal Home Page Tools 脚本和Form Interpreter,并且加入了对mSQL的支持,于是PHP/FI 2.0“诞生”了,从此奠定PHP在动态网页开发上的影响力。PHP/FI以惊人的速度发展,其他的人也开始对Rasmus的源代码加以改进。在1996年底,大约有15000个 Web 网站使用 PHP/FI;在 1997 年中,使用 PHP/FI 的Web网站超过50000个。在 1997 年中,PHP也从Rasmus的业余项目变成了有组织的团体项目,开始了第三版的开发计划,其语法分析引擎由Zeev Suraski 和 Andi Gutmans进行了重新改写,这个引擎构成了现在的PHP3的基础。   PHP跟 Apache 服务器紧密结合的特性,加上它不断在进行更新及被加入新的功能,而且它几乎支持所有数据库以及高速的执行效率,使得 在1999年使用PHP的网站超过了15万!由于PHP的源代码完全是公开的,所以不断地有新的函数库加入、不停地在更新,使得它无论在UNIX或Windows的平台上都可以有更多新功能,并且使它在程序设计方面获得更好的支持。   PHP的第四代Zend 核心引擎现已进入测试阶段。为了让程序的执行速度更快,整个程序的核心进行了大幅变动,较传统的CGI或ASP有更好的表现,配备了更强的新功能、更丰富的函数库。无论您接不接受,PHP 都将在Web CGI的领域上,掀起巅覆性的革命,对于一位专业的 Web Master而言,它将是必修课程之一。 #1 二、PHP3的功能和特征   PHP3最强大和最重要的特征是它的数据库集成层,这使得利用它来完成一个含有数据库功能的网页不可置信的简单。目前支持PHP的数据库有:Oracle、Adabas D、Sybase、FilePro、MSQL、Velocis、MySQL、Informix、Solid、dBase、ODBC、Unix dbm、PostgreSQL。此外,PHP3还具有HTTP认证、文件上传支持、HTTP cookie支持、正则表达式格式、出错操作等特征。而在 Internet上它也支持了相当多的通讯协议,包括与电子邮件有关的IMAP、POP3,网管协议SNMP,网络新闻协议NNTP,账号共用协议NIS,HTTP,目录协议 LDAP 等。除此之外,用PHP写出来的 Web后端CGI 程序,可以很轻易地移植到不同的操作平台上。例如,以Linux为平台的网站,当系统负荷过高时,可以快速地将整个系统移到SUN工作站上而不用重新编译。PHP3的函数库很丰富,对于源代码开发提供了多样的支持,如英文拼写检查、BC高精确度计算、历法、PDF文档格式、Hyperwave服务器、图形处理、编码与解码功能、杂凑处理、WDDX 功能、qmail 与 vmailmgr 系统、压缩文档处理、XML解析等。另外,一般计算机语言都有的数学运算、时间处理、文件操作、字串处理等功能,它一样都不缺。再加上它是免费的系统,使得成本与效益比,几乎等于无限大! #1 三、PHP3与其他CGI的比较   PHP可用在数种Web服务器上;传统CGI在操作系统或Web服务器平台方面则没有限制;NSAPI一定要在 Netscape的服务器 (如 Netscape Enterprise Server 或 FastTrack Server)上才可以执行,但可支持多种操作系统 (UNIX 或 Win32);ASP及ISAPI 只在IIS上有完整的功能。(^24040501a^)   在稳定性上,由于NSAPI或ISAPI是动态链结的方式,因此在执行若出现问题,会导致Web服务器瘫痪。而笔者在实际应用中发现,ASP隔一阵子就会使系统不稳定,需要重新启动;PHP能在许多的平台上使用,程序的稳定性很不错。最稳的当然还是传统的CGI程序,由于它由操作系统负责控制,所以不会因程序错误导致Web服务器的不稳定。   在开发及维护上,PHP及ASP都有不俗的表现。NSAPI及ISAPI则需要长时间的开发过程,然而在稳定上线后,这两种反倒是效率最佳的方法。传统的CGI程式则要视开发工具语言而定,用 Perl或是 shell script不须编译、直接就可以执行,若用Delphi或VC/BCB等,则须要经过编译才能执行。   在和网页结合的能力上,PHP和ASP并驾齐驱。而其它的方式都不能内嵌HTML语法,这是影响开发时间的因素之一。   在新增功能及改版方面,传统的CGI由于不受任何语言限制,没有这方面的问题。PHP最有活力,数天至数周就有一个新版本出现,每次的新版,就代表更多的功能及修正更多的错误。其它的 ASP、NSAPI、ISAPI则要视它的Web服务器改版速度了。 #1 四、PHP资源   中文:   PHP资源网(http://php.silversand.net):介绍PHP源码、技术;   PHP China(http://www.phpchina.com):提供PHP相关技巧、代码、文章、下载、资源;   PHP中文用户(http://www.phpuser.com):包含教程、程序代码、技巧、论坛及相关下载;   PHP专门站(http://www.phpsite.com):提供教程、资料及软件下载;   PHP/Zend技术与资源交流区(http://mark.ee.nctu.edu.tw:8888/):提供使用技巧、书刊介绍及在线手册;   英文:   PHP官方网站(http://www.php.net):提供PHP最新动态、源码下载、FAQ、使用手册等文档资料;   PHPBuilder(http://www.phpbuilder.com):非常不错的PHP的英文站点;   PHP base lib(http://phplib.netuse.de):PHP函数库、开发包等。