首页>参考读物>计算机科学与技术>软件与程序设计

PHP 4.0 Web开发技术指南
作者 : Tobias Ratschiller Till Gerken
译者 : 陈军 龙浩 李向荣
出版日期 : 2001-01-01
ISBN : 7-111-08628-7
定价 : 40.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 265
开本 : 16开
原书名 : Web Application Development with PHP 4.0
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书介绍用PHP编写Web应用程序的方法。内容包括高级PHP语法、Web应用程序设计思想、基本网络应用程序策略、PHP数据库访问、尖端应用程序、PHP 4.0扩充内容等。本书内容丰富,论述严谨,不仅讲解了如何编写高效的应用程序,还讲解了为何这么做,为编写安全、稳定的应用程序提供了实际参考。本书附带光盘包括PHP、MySQL、Apache相关信息、相关应用开发工具、书中大量实例的代码。本书适合了解PHP并用PHP编写网络应用程序的技术人员参考。

图书前言

当开放资源式软件如Linux或Apache的成功已经被主要媒体广泛记载、传播的时候,PHP的发展却在很大程度上被人们忽视。根据E-Soft的调查(WWW.e-Softinc.com/survey/),Web脚本语言PHP仍是ApacheWeb服务器最流行的模块。Netcraft研究发现:全球有超过6%的Web区域使用PHP(参见www.netcraft.com/survey)。对一个非专业化的产品来说,这是一个不可思议的市场渗透。并且,它的使用指数还在急剧增长。这一点在传统媒体中越来越多地被反应出来。自从2000年5月起,20种以上关于PHP的著作已用不同语言出版,同时还有更多的书在撰写中。

商业运作者正开始加入开发PHP潮流中:PHP被包含在Web服务器中,如:C2誷 Sronghold和Linux distributions。一个新的公司—Lend Technologies—已经形成,它提供PHP的商业附件,并支持许多大型Web站点和数以万计的中小型的Web站点开始使用PHP。

本书于1999年开始撰写,当时我们受New Riders Publishing之约写一本关于高级PHP的书。其实,写一本关于PHP的书的想法在我们脑中已存在了很久,所以我们很高兴地接受了提议。

在完成许多艰辛的工作以后,这本书终于与大家见面了,我们认为我们成功地写了一本不同于纯粹参考资料的书。我们尽力解释Web应用程序开发的思想,而不是仅仅给读者一个PHP特征的枯燥概述。

从一个没受过多少正规教育的编程新手发展到一个软件开发专家,要经过不同的阶段。程序员开始其职业时是一个新手,在这一阶段,他一般不关心代码风格、规划或调试。这时经常出现代码的可读性差、安全性丧失等问题。当程序员了解到了一门语言所有的诀窍和特征后,在团体开发、维护更大的开发项目时还会遭遇到困难,在这时,他们开始问如下问题:

我如何避免反复地执行同一个函数?

我必须做出什么规定才能使我的应用程序安全、稳定?

如何才能使我的应用程序更容易维护。

如何使很多人高效地在一个团体中合作。

这就是本书入手的地方,我们希望给软件开发者提供一些关于更好的PHP和Web应用软件开发的指导。许多技术今天已经可以获得,但只有当你理解隐藏在开发过程背后的基本原则,并且练就解决问题的技巧时才能充分利用它们。一般的参考手册并不提供这方面的帮助。

本书所面向的读者

如果你是编程新手,这本书并不适合你,本书适合以下人员:

你已进行过PHP应用开发工作,并想把你的能力提到一个新的水平。

你有其它编程语言的经验,并想用PHP进行Web应用开发。

你是一个PHP专家,并想在你个人基础上扩充PHP的特征。

你不必是一个PHP能手才读这本书,但你应该熟悉PHP的句法并有较丰富的程序规则的知识。

设备需求

这本书认为你有一个正在工作的PHP设置,最好是PHP4.0或更新版本,鉴于其流行性,我们在必要时使用MySQL作为系统。由于平台独立性是PHP最大的特征之一,我们的例子将在UNIX和Windows下运行。

本书的结构

这本书分三部分,第一部分“高级PHP”,涵盖了PHP的高级语法体系;例如:目标定向、动态函数和变量、自修正代码等。这一部分同时给你一个项目策划原则、编码风格和应用程序设计的概述,这一部分指出了Web应用程序的快速、高效开发的必要基础。

第二部分“Web应用”,主要集中阐述软件构造:解释了为什么“会话”是重要的,什么样的安全性指导方针你必须牢记心中,为什么可用性至关重要,以及如何使用PHPLib来进行“会话”管理和数据库访问。你会在本书中学到三个成功的PHP项目案例研究,这会帮助你获得IT管理者的信服。

本书第三部分“深入研究PHP”,是为那些要超越目前PHP可得内容的人而设置的,它解释了如何用C扩充PHP。这是有关PHP扩充、发展的文件证据,已获Zend Technologies批准。

各章的具体内容如下:

第1章—开发思想

要处理高级项目,就必须使用代码规范、适当的策划和高级句法。这一章包含了一般的代码规范,这是对所有工业质量项目的要求,如:命名和评价规范以及如何把源代码拆成逻辑模块。

第2章—高级语法

这一章讲述了PHP的高级语法,例如,多维数组、变化变量、自修正代码等等。

第3章—应用程序设计:一个实际的例子

在这一章中,我们介绍一个完整的Web应用程序设计的全过程。这个应用程序是phpChat,一种Web聊天的IRC接口。这一章将展示设计的基本原则,给出关于项目组织的指导方针,并展示如何实现模块化的、插件应用的应用程序设计。

第4章—Web应用程序思想

会话管理、安全性考虑和授权、实用性,是每一个Web应用程序的基础,没有适当的“会话”管理,Web应用是不可能的。如果你想把变量联系起来(就像购物车将某个特定用户联系起来一样),那么你必须找到一种方式,在许多页的请求间识别用户变量。如果你不想让一个用户看到另外一个用户的信用卡信息的话,这种识别最好是安全的。事实上,你必须进行特殊的考虑,以提高应用的安全性,虽然PHP比其他CGI环境更不易受黑客的攻击,但是当你并没有在头脑中想着本章介绍的某些重要规则时,你也很容易写出完全暴露式的应用程序。

这一章也介绍了一些基本的实用性概念,只要我们开始谈论应用程序而非独立脚本的时候,用户的地位变得更加重要,毕竟是用户来最终决定一个项目的成败。这一章也将向你介绍一些指导性方针,以使用户更满意。

第5章—基本网络应用程序策略

这一章讨论Web应用程序更多的基础内容,所有的Web应用程序都处理如表格输入或布局分隔等问题。从这些问题出发,这一章也将通过CVS版本控制的概述向你介绍高效的团体开发。最后,本章从PHP的观点讨论多层应用程序,如COM和Java。

第6章—PHP数据库访问

没有数据库做后盾,Web应用是不可能的,第6章提供PHPLib作为供方独立数据库访问的工具,并且概述了它的其他特征,例如:“会话”管理、用户授权和许可管理。

第7章—尖端应用程序

通过使用PHPLib开发一个完整的信息库。这一章将使你熟悉PHPLib的模板类、SQL中的自参考和其他高级主题。然后,这一章陈述了XML的概况以及如何才能使应用程序从这一令人兴奋的技术中获益。这一章也描述了PHP用于XML分析及其WDDX函数的接口。

第8章—案例研究

当把一种新技术引入一个公司环境中时,成功的例子会有巨大的帮助。在第8章中,我提供一个案例研究来描述成功使用PHP的数百家公司中的三个较显著的例子:Six Open Systems、BizChek 和Marketplayer.

第9章—扩充PHP 4.0:探究PHP内核

1200个函数仍不够你用吗?没问题。因为这一章是关于扩充PHP的官方记录,如果你知道一些C的知识,第9章会给你一些压缩的关于PHP 4.0内部构件的知识,并告诉你如何编写自己的模块来扩充PHP的功能。

图书序言

当我三年前第一次接触到PHP的时候,我怎么也想不到有一天我会为一本关于PHP的书写序言。事实上,在那个时候,编写任何有关PHP的书都会显得有一点牵强,让我们回顾一下究竟是什么使PHP成为Web开发中应用最为广泛的脚本语言。我开始从事PHP项目是很偶然的。作为一个终端用户,我在PHP/FI2.0中碰到了一个绊脚的bug,它是如此的奇怪,以致使得伙伴Audi Gut mans和我不得不深入研究,以看个究竟。当我们看到了产生PHP/FI2.0 标记的代码时,我们对它很不满意。另一方面,我们确实欣赏这样一种想法,即:开发一种内嵌HTML和服务器的服务器端脚本语言。因此,就像软件工程师一样,我们认定从零做起一定很酷,这正是一次机会。

我们编写了这种语言,并在函数模型和样本代码中投入了大量精力,这使得PHP被推进到远超过我们想象和期待的程度。今天,PHP正在超过一百万个Internet域内使用。它是经常被选择在UNIX环境下进行服务器端脚本编写的工具。PHP 4.0使人们确信,在未来的一段时间内,PHP仍将是Web脚本技术的先驱。Zend引擎(www.zend.com)使得以PHP为基础的Web站点性能和可扩展性发生了革命性的变化。其集成的会话支持,内在的XML、Jave和COM支持,以及许多其他优点使得Web开发者能够开发出更加强大的动态网站,并比以前做得更加容易。

随着前沿技术的继续发展和集成,PHP一直在更新发展。新的Java和DCOM支持,先进的XML特性,以及改善了的OOP特征进一步增加了PHP在商业环境中的可用性,使得PHP成为企业计算的可行工具。来自Zend Technologies的商业附件(例如:debugger、IDE和Compiler)将会导致进一步的飞跃。同时,PHP 4.0的内核,已经发生了革命性的结构变化,例如,Web服务器接口已被完全提取出来,这将允许除Apache 以外的Web服务器支持。一些书籍(例如你现在要读的这一本)会给你提供成功利用这些新技术的必要的背景知识。

在我看来,总的开放式资源,特别是PHP的未来是很光明的。在1997年,要说服你的经理“Linux至少和Windows NT同样稳定”,需要费很大力气。并且,在大公司中没有人想过使用开放式资源。现在,这一切都已经改变了。采用以Linux为基础的方法解决问题的公司(如RedHat、SuSE和VA Linux)不仅已成为商业巨人,而且整体上将Linux和开放式资源定位成一个今天每一个公司都可以接受的方案。这些公司很幸运,保持了开放资源的精神及与这一群体密切联系。开放资源式发展模型和坚定的商业支持,使Linux具有无限潜力。我确信,支持PHP的商业公司(例如Zend,Technologies)将会帮助PHP成为更加广泛使用的解决方案,特别是在高级终端网站中。

我想借此机会感谢IBM Haifa的Michael Rodeh教授,他鼓励Andi和我与Rasmus Lerdorf(PHP/FI1.0和2.0的作者)合作。Rasmus lerdorf也很愿意同我们合作,使PHP 3.0成为PHP/FI 2.0的正式新版本。在此我们也向他表示感谢。同样需要致谢的是,PHP发展群体和所有PHP开发者,没有他们,PHP将不可能成为今天这样出色工具。最后,我们还要感谢PHP使用者,他们是创意和支持的无尽源泉。

我敢肯定你会发现这本书在你学习高级PHP和Web应用时非常有帮助。这本书不仅介绍一种语言的句法,而且还将介绍语言背后的思想,并能帮助你提高在Web编程时解决问题的能力。


祝你好运!
Zeev Suraski

作者简介

Tobias Ratschiller Till Gerken:暂无简介

译者简介

陈军 龙浩 李向荣:暂无简介

译者序

PHP是Web开发中应用非常广泛的脚本语言。它被视为脚本技术的先驱,并因其开发功能的强大性,越来越受到人们的欢迎。同样,人们对它的要求也越来越高。所以版本被一再更新。从1997年至今,PHP经历了PHP/FI1.0和2.0版升级至PHP 3.0,再由PHP 3.0升级至PHP 4.0。本书就是为了满足人们对PHP应用的进一步要求而编写的。

本书作者对PHP有很深的研究,在他编写本书的时候,付出了大量的时间和心血。所以本书涉及到的深奥问题都是经过严格认证的,并且包含大量的程序清单实例。这使得读者通过对本书的学习,能很好地掌握高级PHP的语法,并能大大提高开发者解决开发Web应用程序时遇到的问题的能力。

参加本书翻译的工作人员有陈军、龙浩、李向荣、肖虎勤、段小华等,他们在经过数月的辛勤工作之后将本书奉献给了广大读者。由于我们的水平有限,所以尽管我们为此付出很多努力,书中难免存在一些翻译不当之处,欢迎广大读者批评指正。


2000年11月

图书目录

译者序
序言
前言
第一部分  高级PHP
第1章  开发思想 1
1.1  PHP与我 1
1.2  计划的重要性 2
1.3  编码规范 3
1.3.1  选择名字 3
1.3.2  使代码更易读 5
1.3.3  添加注释 8
1.3.4  选择谈话式名字 13
1.3.5  保持清晰一致的接口 15
1.3.6  将代码结构化为逻辑群 16
1.3.7  抽取单独的代码块 16
1.4  使用文件将函数分类 16
1.5  编写文档 17
1.6  一个API设计实例 18
1.7  小结 22
第2章  高级语法 23
2.1  PHP语法 23
2.2  定义常量 24
2.3  数组函数 25
2.4  PHP和OOP 31
2.4.1  类:PHP 3.0和PHP 4.0的对比 35
2.4.2  执行类 36
2.4.3  读取对象 37
2.4.4  构造函数 38
2.4.5  继承 38
2.4.6  特殊的OOP函数 39
2.5  链接清单 41
2.6  关联数组 49
2.6.1  多维数组 50
2.6.2  变量参数 51
2.7  多态和自变代码 62
2.7.1  动态函数生成程序 63
2.7.2 自变计数器 67
2.8  小结 68
第3章  应用程序设计:一个实际的例子 69
3.1  项目概观 69
3.2  比较技术环节 70
3.3  IRC网络基础 73
3.4  使应用程序适用于网络 75
3.5  连接网络的接口 76
3.5.1  接口结构 78
3.5.2  下游信息交流 79
3.5.3  上游信息交流 80
3.5.4  在共享的存储器中设置一个标志 83
3.5.5  用户接口 84
3.5.6  开发者的接口 84
3.5.7  HTML开发者的接口 85
3.5.8  代码开发者的接口 85
3.6  管理和安全 90
3.6.1  网络等级 90
3.6.2  PHP/Web服务器等级 90
3.6.3  数据库等级 90
3.6.4  IRC等级 91
3.7  执行 91
3.8  小结 91
第二部分  Web应用
第4章  Web应用程序思想 93
4.1  HTTP和“会话” 93
4.1.1  保持状态 93
4.1.2  用cookies进行“会话”ID传输 95
4.1.3  URL手工改写 95
4.1.4  动态路径 96
4.1.5  DNS技巧 98
4.1.6  实际应用中的折衷方案 99
4.1.7  PHP的内嵌“会话”库 100
4.2  安全性考虑 106
4.2.1  不要信任Web 107
4.2.2  不要重新发明加密法 111
4.2.3  开发组需要资深人员 118
4.2.4  认证 118
4.3  为什么适用性很重要 120
4.3.1  Web应用程序的“适用性” 121
4.3.2  打折式适用性工程 124
4.3.3  适用性:只要做就可以了 126
4.4  小结 126
第5章  基本网络应用程序策略 127
5.1  PHP正常表格 127
5.2  方案策划 133
5.2.1  团队合作 133
5.2.2  目录结构 134
5.3  CVS:一致版本系统 135
5.3.1  CVS时间节省器: GUIS和CVS web 139
5.3.2  高级CVS 140
5.4  三层式应用程序 145
5.4.1  传统的客户端/服务器 145
5.4.2  PHP和多层应用程序 146
5.4.3  PHP和COM 147
5.4.4  PHP和Java 149
5.5  小结 150
第6章  PHP数据库访问 151
6.1  PHPLib:PHP基础库 151
6.1.1  PHPLib的历史 151
6.1.2  优点和缺点 152
6.1.3  重要文件 152
6.1.4  PHPLib客户化 152
6.2  数据库基本概念 153
6.2.1  可移植性 153
6.2.2  调试模式 154
6.2.3  错误处理 154
6.2.4  DB_Sql实例 154
6.2.5  会话 156
6.2.6  自动撤退 157
6.2.7  网页捕捉 157
6.2.8  串行器 157
6.2.9  会话实例 157
6.2.10  缩写I:page_open( ) 160
6.2.11  缩写II:purl( )、url( )和pself( ) 161
6.3  认证 162
6.3.1  PHP认证的优点 162
6.3.2  Auth实例 162
6.3.3  Auth内核 163
6.3.4  管理许可等级 165
6.3.5  位运算 166
6.4  小结 170
第7章  尖端应用程序 171
7.1  知识库 171
7.1.1  必要条件清单 172
7.1.2  条件清单 173
7.1.3  模板类 175
7.1.4  SQL递推式 179
7.1.5  身份确认 180
7.1.6  完成的产品 180
7.2  PHP和XML 180
7.2.1  什么是XML 180
7.2.2  DocBook 183
7.2.3  WML(Wireless Markup Language) 184
7.2.4  RDF—Resource Description Framework 184
7.2.5  XML文档 184
7.2.6  PHP和Expat 190
7.2.7  DOM—Document Object Model 197
7.2.8  LibXML—一个基于DOM的XML
分析 200
7.3  用WDDX相互交换数据 205
7.3.1  WDDX 205
7.3.2  挑战 205
7.3.3  可能的情况 206
7.3.4  用WDDX抽象化数据 206
7.3.5  WDDX数据类型 207
7.3.6  PHP和WDDX 208
7.3.7  WDDX函数 208
7.4  小结 210
第8章  案例研究 211
8.1  BizChek.com 211
8.1.1  Web 邮件 211
8.1.2  选择PHP 212
8.1.3  渴望升级 213
8.1.4  结论 213
8.2  SixCMS 213
8.2.1  公司背景 213
8.2.2  开放代码的商务 214
8.2.3  为什么用PHP 214
8.2.4  技术考虑事项 214
8.2.5  实际生活中的PHP 215
8.2.6  PHP:一个商业优势 216
8.3  Marketplayer.com 216
8.3.1  公司的背景 216
8.3.2  PHP产品 217
8.3.3  为什么选择PHP 217
8.3.4  在MarketPlayer.com产品开发中使用PHP的优势 217
8.3.5  PHP实际生活中的竞争 218
8.3.6  会话 218
8.3.7  PHP服务器集成 219
8.3.8  代码管理 219
8.3.9  前景 219
8.4  小结 219
8.5  参考 220
第三部分  深入研究PHP
第9章  扩充PHP 4.0:探究PHP内核 221
9.1  概述 221
9.2  什么是Zend?什么是PHP? 221
9.3  扩充可能性 222
9.3.1  外部模块 222
9.3.2  内嵌模块 223
9.3.3  Zend引擎 223
9.4  源代码格式 223
9.4.1  宏 224
9.4.2  内存管理 225
9.4.3  目录和文件函数 225
9.4.4  字符串处理 226
9.4.5  复杂类型 226
9.5  PHP的自动建造系统 226
9.6  创建扩充 228
9.7  编辑模块 229
9.7.1  编辑使用Make 229
9.7.2  手工编辑 229
9.8  使用扩充 230
9.9  故障处理 231
9.10  源代码讨论 231
9.10.1  模块结构 231
9.10.2  头文件内容 231
9.10.3  声明输出函数 232
9.10.4  Zend函数块的声明 232
9.10.5  Zend模块的声明 234
9.10.6  Get_module()的执行 236
9.10.7  所有输出函数的实施 236
9.10.8  小结 237
9.11  接收变量 237
9.11.1  决定变量的数目 237
9.11.2  获取变量 238
9.11.3  处理数目变化的变量/选项参数 238
9.11.4  访问变量 240
9.11.5  处理参考变量传递的参数 243
9.11.6  为其他参数确保写安全 245
9.12  创建变量 246
9.12.1  概述 246
9.12.2  长(整)型 249
9.12.3  双精度(浮点)型 249
9.12.4  字符串 249
9.12.5  布尔型 250
9.12.6  数组 250
9.13  对象 253
9.14  资源 254
9.15  利用自动全局变量创建的宏 255
9.16  复制变量内容:复制构造函数 256
9.17  返回值 257
9.18  打印信息 258
9.18.1  phpinfo()中包含输出 259
9.18.2  执行信息 260
9.19  启动和关闭函数 261
9.20  调用用户函数 261
9.21  下一步该做些什么 265
9.22  参考:一些配置宏 265

教学资源推荐
作者: 贾伯琪 顾为兵 苏仕华 张四海 何克东 编著
作者: Brian W.Kernighan,Dennis M.Ritchie
作者: (美)Barry Wilkinson, Michael Allen
参考读物推荐
作者: Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
作者: (美)Steven Holzner