电脑报精华 · 2000 年 · 2000wl058

网页制作新宠——PHP

网页制作新宠——PHP

一、PHP的诞生及其特点
现有Web后台程序,绝大多数采用下列几种技术编写:使用Perl、C等语言直接编写CGI程序;利用Web服务器自带的API(如ISAPI,NSAPI);采用第三方解决方案(如ASP,ColdFusion)。虽说每类方案都有各自的强项,但均不是理想的解决之道。
Perl编写CGI是使用最多的方法,在网络上也有很多现成的脚本可以拿来修改使用,但它却存在公认的性能问题:由于Web服务器运行时需调用解释程序解析代码,当站点的访问人数激增时,Web服务器的性能也必将直线下降。另外,它的数据库连接功能非常弱,某些情况下甚至还会降低数据库的存取速度。
C编译CGI和ISAPI,NSAPI技术在速度上提升很大,一个时期被多数大型网站采用,但由于编写复杂、数据库功能弱及API只能用于特定Web服务器等原因,一直未能大规模使用。
在这两者的基础上,第三方厂商提出了较好的解决方案:如Microsoft的Active Server Pages和Allaire的ColdFusion,它们都具有运行速度快,数据库操作功能强大等特性,受到了许多开发者的欢迎,但它们只能单纯地运行于个别平台,对要求更高回应率的网站来说(大多数大中型网站均建于Unix或Linux平台,Apache系列Web服务器),还是不能顺利采用。目前已有人提出这两种技术在Unix系列平台上应用的方案,但要么是不具备源技术的全部优秀功能,要么就是只能应用于个别Unix平台。
1997年,PHP开发小组在原PHP/FI 2.0的基础上,开发出了全新的PHP3,并将其置于GNU的规约之下(和Linux相同),免费让所有人使用和更改解释器源代码。相对于传统的CGI语言,PHP3拥有下列优越的特性:
1.易学易用
PHP3的语法结构大部分借用了C、JAVA、Perl等好的语法框架,有以上编程经验的开发人员可以快速地掌握投入实际使用。在PHP3的程序包中,有极其详尽的安装说明,任何人都可以按照说明快速地配置好自己的Web服务器,甚至可以在PHP3的站点上直接下载已经配置好PHP3模块的Web服务器。
2.运行速度快
PHP3采用HTML内置标记技术(类似当前流行的ASP,后缀为PHP3),解释程序本身作为Web服务器的一个模块运行,在很大程度上提高了运行时的解析速度(目前只支持Apache WebServer的模块方式,按照PHP开发小组的计划,以后将可把解释程序作为Web服务器的一个Plug-in来运行)。另外,从页面表单提交的数据自动成为程序中同表单名的变量,而无需手工赋值。
经测试表明,在Web站点访问量非常大时,PHP3的解析速度相当于传统CGI程序的4倍!非常适合大中型站点的应用。
3.跨多个平台
目前PHP3可在Windows,Unix,Linux的Web服务器上正常运行,支持IIS、Apache等通用Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用。
4.极其强大的数据库支持
PHP3直接为很多数据库提供连接,包括Oracle,Sybase,Postgres,Mysql,Informix,Dbase,Solid,Access等,通过Sybase-CT驱动,更可高速地访问Microsoft SQL Server两者协议是兼容的。PHP3完全支持ODBC接口,因此,凡是支持ODBC接口的数据库,PHP3都可以提供有力的支持。而且这些数据库的操作都是PHP3内部包括的,无需其他附件介入,实际应用中,可以得到比任何后台技术都要快的数据库访问性能。PHP3也支持与采用POP3、HTTP、SNMP、NNTP、IMAP等协议的服务进行网络编程。
5.先进的扩展功能
PHP3不但内置了对文件上传、密码认证、Cookies操作、邮件收发、动态GIF生成等功能的支持,还极有远见地提供了对GZIP文件、PDF、XML的直接支持,用户还可以编写自己的扩展模块(或从网上下载别人编写的其他模块、基库),为将来的扩展提供了极大的空间。
6.完全免费
PHP3是遵守GNU规约的,任何人均可按规约免费使用并进行源码改写,使用者还可通过PHP3的站点、邮件列表等方式获得支持。这里需要指出的是,网络上已专门开设了PHP3的支持站点、代码交换站点,相当多的支持者们也开发出了许多强大的基库,让人们随意调用。在PHP3的权威站点上,有PHP3的详尽使用手册,FAQ等资料下载。
由于PHP3的众多优秀功能,国外愈来愈多的站点已开始使用它来进行后台的开发,截止到1999年4月,已有60万个站点使用PHP3进行开发。国内一些有识之士也开始尝试使用,获得了非常好的效果,我们有理由相信,如此优秀的CGI语言必将会大规模地扩散开去,成为我们有力的开发工具。
7.PHP3环境安装
在Windows下,有一个安装程序,装上后要把php3目录设成网络可执行的。安装上之后,系统应该支持对.php3和.phps文件的HTTP读取了。(在Unix下需要修改服务器的srm.conf文件,具体看README)。
如果安装时连进了apache服务器,那么速度应该是最快的。如果作为CGI程序执行,速度也还将就。如果系统支持FastCGI,那么解释程序也可以作为FastCGI程序运行。Windows下支持ISAPI的解释程序还没有出来。
二、PHP3的程序模式
有三种方法从HTML进入“PHP程序模式”:
第一种方法: <?  PHP3语句; ?>
如:
<? echo(“this is the simplest, an SGML processing instruction\n”); ?>
第二种方法:  <?PHP  PHP3语句; ?>
如:
<?php echo(“if you want to serve XML documents, do like this\n”); ?>
第三种方法:  <script language=“php”>   PHP3语句; </script>
如:
<script language=“php”>
echo(“some editors (like FrontPage) don't like processing instructions”);
</script>
现在我们来看看第一个php3脚本,会在页面显示Hello,world.
<HTML>
<HEAD>
<TITLE>First PHP3 Script</TITLE>
</HEAD>
<BODY>
<CENTER>
<?   echo “Hello, world!”; ?>
</CENTER>
</BODY>
</HTML>
把它放在任何一个能通过HTTP访问到的目录,取名hello.php3,再用浏览器连接该文件,就可以看见其效果了。如果把它改名成hello.phps,再用Netscape或Explorer连接,可以看见加了颜色的源码,因为解释器在遇到.phps文件时会对它进行语法加亮的处理,在里面加上很多颜色控制符再送出。
三、PHP的前景
虽然PHP已经十分流行,但在国内了解它的人却很少,这当然是因为它不是商业软件,缺乏市场运作。即使在听说过PHP的人们中,不少人也抱有这样的看法,PHP既没有商业公司的支持,又缺乏商业的图形化开发工具,PHP能够和ASP等商业软件一样有前途吗?的确,ASP由于有微软公司的支持,使得它迅速变得十分流行,现在书店中充斥着ASP的相关书籍,而很少能找到介绍PHP的著作,正说明了国内的这种流行趋势。然而,过去一年中整个互联网中PHP使用者稳步增长的事实,却与这些观点截然相反。我认为那些不看重PHP的人至少忽略了以下几个原因:
1. PHP已经证明是非常实用的软件,性能、可靠性、稳定性非常高,借一个来自武侠小说的比喻,PHP就如同来自江湖下层一步步成名的草莽英雄,而商业软件则如同出身高贵的少年侠士,其成名的原因与其师傅和门派密切相关。虽不能说PHP比同类产品强,但其实力不容忽视。
2. PHP是跨平台的产品,它能运行在多种Unix以及Windows NT上,并能访问多种不同的数据库,对很多人来讲,这一点非常重要。商业产品通常要求非常苛刻,只能和特定的操作系统和数据库相互协作。而人们喜欢使用自己已经熟悉的操作系统、Web服务器和数据库,如Linux、Apache和MySQL。
3. PHP是开放源代码的软件,很多人对此不以为然,然而他们忽视了占Web服务器市场58%的Apache服务器,忽视了Linux、FreeBSD等开放源代码的操作系统,这些开放源代码的软件结合在一起,就形成了一个非常有效的解决方案。
4. 即便不考虑源代码的因素,PHP不需要任何费用的特点也是商业软件无法相比的。虽然ASP也是免费的,然而很多人忽视了运行Windows NT及MS SQL的费用,而PHP和Linux/FreeBSD、Apache、MySQL相互合作,几乎不需要任何软件费用,当前如果不考虑盗版,究竟有多少人还会坚持ASP呢?
5. PHP有良好的技术支持,可以通过电子邮件、论坛、网页、IRC等方式获得技术支持。开放源代码使你能提出更接近故障本质的现象,不但遇到过同样现象的使用者会提供帮助,PHP的开发者也能提供帮助。有什么技术支持比几十万个使用者,其中大多数都是使用PHP的老手,提供的帮助更有效呢。
无论如何,商业支持并不是一个软件流行的必要条件,反过来倒是正确的,最近的例子Linux不就是由于流行而得到了商业支持的吗?例如最新版本的网页制作工具DreamWaver 3.0,也开始支持PHP的标记,允许在其中直接进行PHP代码的编写了。越来越多的国内Web开发者也开始将目光投向PHP,其中大多数选择了Unix (Linux,FreeBSD, Solaris, AIX, HP-UX等等)作为Web站点的操作系统,而国内出版计算机图书的出版社也会陆续出版一些PHP的著作,显然这又会有利于PHP的推广和发展。 

(高 祥)