当前位置:Linux教程 - Php - PHP3程序设计 之一

PHP3程序设计 之一

综述
第一章“什么是PHP?”描述了什么是PHP,怎样将它与Apache Web服务器集成在一起,以及它能完成什么样的任务。

第二章“安装PHP”,讲述了如何编译MySQL数据库,如何将PHP编译成支持ODBC,XML,模式匹配和MySQL数据库的Apache Web服务器模块。

下两章篇幅集中讲述 PHP编程语言的技术细节。

第三章“PHP中的数据处理”,介绍变量,数字和操作符。

第四章“程序控制”,介绍表达式、语句和函数。

第五章“中场一:连接数据库”,通过使用PHP连接MySQL数据库,显示出PHP编程语言的前景。

第六章“数据库和SQL”所介绍内容的序曲,第六章中介绍了数据库的基本概念,如表、记录等。此外,第六章也讨论了数据定义和数据处理语言,即SQL(结构化查询语言)。

第七章“中场二:处理列表”,介绍了如何使用PHP和SQL维护一个月名的数据库表单。

第八章“phpMyAdmin:开放源码的MySQL前端”介绍了一个源代码公开的应用程序,它能提供查阅、改变任一个MySQL数据库的能力。

第九章“模式匹配”和第十章“面向对象”,讨论了PHP语言的更深层次的技术细节。模式匹配指的是查找和替换文本的一种功能。面向对象的编程将数据和函数存储在一起。事实上,面向对象的编程比这里的简单定义要复杂得多,详细内容将在第十章中讲述。

第十一章“中场三:创建HTML模块”,本章暂时从技术术语的介绍中解放出来,而发展了一种从PHP脚本内部显示HTML的方法。

以下几章又返回到了更进一步的教学模式,

第十二章“什么是CGI?”讲述了Web服务器和回应浏览器请求的应用程序之间关系的基础。虽然PHP(本书中的)是Apache Web 服务器集成的一部分,它也遵守CGI标准。

第十三章“验证口令”讲述了如何更好地了解你的Web站点的访问者。最基本的有效技术是让访问者输入用户代码和密码以验证用户身份。

第十四章“深入了解SQL”更深一步地讲述了SQL。这里不仅讲述了表之间不同的关系,而且也讲述了完整性的概念。

第十五章“中场四:处理并发访问”使用PHPLIB模块来验证用户,并防止多个用户在同一时间内改变同一条记录。

第十六章和第十七章讲述了XML。首先,第十六章“XML”较详细地介绍了XML和HTML之间的区别和相似。该章也讲解了文档类型定义(Document Type Definition、DTD)。第十七章“用PHP处理XML”讲述了如何分析XML(即,如何读取和解释XML标记),并如何把XML内的信息移到PHP变量中。

附录A“Internet 资源”,列出了几种不同类型的Internet资源,如邮件列表和Web站点。附录B“ASCII表”,列出了所有的ASCII代码及其对应的字符。附录C“SQL参考”,为SQL语句、操作符、函数的简明清单。附录D“PHP函数清单”,以字母表的顺序列出了大部分的PHP函数。附录E“CD-ROM中的内容”简单说明了随书附送的光盘中的内容。

第一章 什么是PHP?
PHP是编程语言和应用程序服务器的结合。PHP和其它的编程语言类似,使用变量存储临时数值,使用操作符处理变量。PHP的真正价值在于它是一个应用程序服务器。

当谈到应用程序服务器的时候,我是指一个把几个不同的技术组合为一个完整的套件的程序。这些技术包括:

* 一个强壮的编程语言。

* 存取数据库中存储的数据。

* 支持 Internet协议,尤其是电子邮件和HTTP协议。

注意:应用程序服务器有许多其它的特性,这里只列出了最基本的特性。

由于提供了这些多种不同技术的前端接口,PHP可以使工作变的很容易。

本章的其它部分讲述了有关PHP的许多繁杂资料,以及它在应用软件开发中起到的作用。

1.1 起源

PHP是由Rasums Lerdorf创建的,它开始是一个简单的用Perl语言编写的程序,用来记录Rasums Lerdorf自己在线简历的访问者。以后它又被用C语言重新写过,范围扩大到访问数据库。在这期间,有许多人向Rasums Lerdorf要此程序的拷贝,以便自己使用。Rasums Lerdorf为此写了一些介绍此程序的文档,并发布PHP v1.0。以后,越来越多的人开始使用PHP,并强烈要求增加一些其他的特性,如循环语句和数组变量等。到这时,其他的一些程序员也开始参与PHP源码的编写(主要有Zeev Suraki和Andi Gutmans),很明显,此时的PHP为了以后的发展,必须重新编写。因此,PHP v3.0就出现了。

1.2 特性

PHP的特性包括:
* 开放源码 -- 所有的PHP源码都可以得到。事实上,所有的源码都包含在随书附带的光盘中。
* 没有运行费用 -- PHP是免费的。
* 基于服务器端 -- 由于PHP是在Web服务器端运行的,PHP程序可以很大、很复杂而不会降低客户端的运行速度。
* 跨平台 -- 虽然本书是以Linux为重点介绍的,但PHP程序可以运行在UNIX,Linux,或者Windows操作系统下。
* 嵌入HTML -- 因为PHP语言可以嵌入到HTML内部,所以PHP很容易学习。
* 简单的语言 -- 和Java和C++不同,PHP语言坚持以基本语言为基础,然而它的功能也强大到足以支持任何类型的Web站点。
* 效率高 -- 和其它的解释性语言相比,PHP系统消耗较少的系统资源。当PHP作为Apache Web服务器的一部分时,运行代码
不需要调外部二进制程序,服务器解释脚本不需要承担任何额外负担。
* 分析XML -- 用户可以组建一个可以读取XML信息的PHP版本。
* 数据库模块 -- 用户可以使用PHP存取Oracle、Sybase、MS SQL、Adabase D、MySQL、mSQL、PostgreSQL、dBase、
FilePro、Unix dbm、Informix/Illustra等类型的数据库,以及任何支持ODBC标准的数据库。
* 文件存取--PHP有许多支持文件存取函数。
* 文本处理--PHP有许多函数处理字符串,其中包括模式匹配的能力。
* 复杂的变量--PHP支持标量、数组、关联数组等变量,这给用户提供了以支持其它的高级数据结构的坚实基础。
* 图象处理--用户可以使用PHP动态的创建图象。
* 更多的其它功能!

1.3 PHP需要花费多少钱?

PHP是免费的。所有的源码、文档都可以免费的复制、编译、打印和分发。用户的任何一个用PHP编写的程序都属于用户自己,可以按照自己的意愿进行处理,而不需要付任何版税。就PHP本身而言,用户可以无限制地发布自己编写的程序。

然而,有着很充分的理由,PHP并不是彻底的“公共领域”代码。如果PHP源码是完全的公共领域代码,很可能就有人对PHP的源码做很小的修改,然后编译并出售--换一句话说,从它的创作者中脱离出来。但从另一方面说,如果不公布源码,很难使想使用它的用户感到放心。

GNU通用公共许可是一种发布免费软件的方法,它可以避免其他人占有你的劳动成果。在符合GNU许可的条件下,源码可以自由地发布,并且任何一个人都可以使用,但是任何来源于此代码的程序必须以同样种类的许可方式发布。换句话说,如果用户从任何GNU许可下的源码中得到代码而编写自己的程序,用户必须给任何想得到源码的人共布自己的源码。

1.4 PHP语言可以嵌入HTML中

当使用者使用经典程序设计语言(如C或Pascal)编程时,所有的代码必须编译成一个可执行的文件,然后该可执行文件在运行时,为远程的Web浏览器而产生可显示的HTML标记。但另一方面,PHP并不需要编译(至少不编译成可执行文件)。使用者可以把自己的代码混合到HTML中。例如,下面的代码将显示“Hello,world!”,PHP代码在下面以黑体字显示。

〈HTML〉
〈HEAD〉〈TITLE〉Test〈/TITLE〉〈/HEAD〉
〈BODY>
〈?PHP $string = ''world!''; ?〉
〈H1〉Hello,〈?php echo $string ?〉〈/H1〉
〈/BODY〉
〈/HTML〉

PHP应用程序服务器(本书的主要写作目的)是紧密集成到Apache Web服务器中的,可以在一个程序内同时调用它们两个。当Web浏览器请求PHP Web页面的时候,Web服务器的PHP部分将被调用进行解释。Web服务器在请求的Web页中寻找标记,并按要求执行这些PHP代码。由PHP代码生成的输出将替代标记。例如,当PHP代码运行后,以前的Web页面将变成如下所示的内容:

〈HTML>
〈HEAD>〈TITLE>Test〈/TITLE>〈/HEAD>
〈BODY>
〈H1>Hello,world!〈/H1>
〈/BODY>
〈/HTML>

注意,所有的PHP代码都消失了,仅仅留下了HTML语句。而由PHP代码生成的HTML语句在上例中以黑体的形式显示。

1.5 PHP语言是在Web服务器端运行

当开发互联网应用程序时,很重要的一点是要清楚应用程序是在哪一端运行的。PHP总是运行在服务器端。不要嘲笑对这一点的强调。在以后考虑对应用程序某些特性进行规划时,有的人可能就会在应用程序在哪里运行的这个问题上搞错,不要让自己也成为这些人中的一个。

由于Java applets,ActiveX,或Javascript 都是运行在客户端的Web浏览器中的,因此PHP不能直接和它们进行比较。然而可以很容易的将这些语言与PHP相结合在一起,使用PHP可以很方便地生成所需要的任何HTML代码,当然也就能激活Java applets和ActiveX控件,还可以动态生成Javascript语句。当对互联网应用程序开发还很陌生的时候,这也许没有什么意义,但是在读完这本书后,这一切就会变得十分清晰的了。

1.6 PHP无处不在

无处不在是常使用的充满激情的词语,到1999年7月,将有60万左右的Web站点使用PHP,1999年夏天有关Linux和开放代码运动的大发展很可能使PHP团体有突破性发展。可以在http://www.php.net/usage.php3站点上看到它的发展趋势图表。

此外,PHP邮件列表每天能收到大约80个电子邮件,每个月能收到大约2500个电子邮件,这说明PHP是一个非常活跃的开发团体。使用PHP的商业公司有以下几个,Mitsubishi Motors、Volvo、Red Hat Software、E*Trade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。

1.7 PHP和C或Java相似吗?

PHP程序和C程序有略微相似的地方,这是由于PHP来源于C、Perl和Java。一些对C语言来讲比较麻烦的方面(如处理字符串的技术),由于采用了和Perl相近的技术,在PHP中就不再是麻烦了。PHP中也不包括Java中的一些面向对象特性。

PHP能很好地处理某些低级的任务,如果代码需要运行的特别快,可以很方便的使用C为PHP程序编写模块。

1.8 PHP比ColdFusion、Active Server Page或Java Server Page更好吗?

以流行的商议方式,我总是回答,“可以是,也可以不是”。

回答是,是由于它的费用(免费)以及可以通过邮件列表、IRC而在世界范围内有广泛的支持网络。同时PHP还在不断地发展着,如果想要一个PHP现在没有的特性时,请等待几个月,就有人很快为PHP编程而加上此种特性。

回答不是,是由于商业软件有比PHP更多的特性。例如,Allaire''s ColdFusion有一个已证实可靠的搜索引擎组件。微软的Active Server Page技术提供了与Outlook、电子邮件和工作组程序相结合的能力。Java Server Page让使用者可以使用互联网上的大量开放源码模块。

1.9 总结

对于遍及互联网上的PHP,本章仅仅简要提到了它的一些特性,本章也介绍了当设计互联网应用程序时,PHP为什么是最好的编程工具之一的原因。

下一章“安装PHP”将一步一步的介绍了PHP的编译过程、安装过程以及测试过程。