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

PHP高级编程
作者 : Jesus Castagnetto
译者 : 薛忠胜 石征 杨登峰 郑丰
出版日期 : 2001-03-01
ISBN : 7-111-08618-X
定价 : 78.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 815
开本 : 16开
原书名 : Professional PHP Programming
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书介绍PHP的基本知识与高级特性,指导读者从入门到精通掌握PHP技术。内容包括PHP的变量、函数、语句、表达式,PHP对文件的处理,PHP的模块,如MySQL、XML、LDAP、GD,用PHP发送电子邮件,PHP的安全特性等。本书还介绍了五个范例应用程序,结合实际应用程序来讲述编写PHP代码的特点。本书的附录还介绍了关于PHP的问题解答、技巧和文章。本书的作译者均具有丰富的实际应用经验,赋予了本书极有价值的参考信息。

图书特色

JesusCastagnetto
JesusCastagnetto是一个化学博士,在Scripps Research Institute工作。该研究院是属于金属蛋白质结构和设计集团(http://www.scripps.edu/research/metallo/)的博士后研究团体。在这里,他们用自己内部的程序(Java Applet/Servlet)、SQL数据库和PHP3开发金属蛋白质的数据库和浏览器(http://metallo.scripps.edu/0)。由于在计算、合成、医药化学等方面的研究,他从纽约大学获得了博士学位。他现在研究的课题是:金属蛋白质。生物信息和化学品的计算模式是他最感兴趣的两个领域。另外,他还精通awk、PHP。
Harish Rawat
Harish Rawat是Oracle公司的一位软件工程师,在系统编程方面有七年的工作经验。他感兴趣的技术领域包括XML、Java和网络协议。
Sascha Schumann
Sascha Schumann是PHP开发小组和Apache软件基金会的一名成员。他目前正在Gymnasium Letmathe学习。Sascha是许多PHP模块(如DBA、Session管理、mcrypt和mhash)的设计师,他使PHP能够用在AOLserver上,并给使用PHP的组织提供综合的支持和模块的定制。Sascha还维护mhash—一个用于加密的开放源代码软件。
Christopher Scollo
Christopher Scollo是Taurix公司的合作创始人和现任总裁。Taurix公司是一家软件开发公司,位于新泽西州的New Brunswick。在他不开发基于Web的应用程序时,他教授Web方面的课程,给Web期刊撰稿。除了计算机编程语言,他对人类的语言也很有兴趣。他在不同程度上掌握英语、德语、法语和意大利语。
Deepak Veliath
Deepak Veliath目前就职于印度Bangalore的Oracle公司。他学习PHP已经有一年了,最喜欢的操作系统是Linux。

图书前言

在过去的几年里,因特网(Internet)已经从学术界向商业界迈进。这主要是由于Web的快速发展,包括Web上的图形浏览器和多媒体的集成。由于脚本技术的引入,从静态网页到动态网页,用户交互操作已经取得很大的改变。

和网页上普通的描述语言一样,脚本语言可让客户端从服务器端取得特定的信息,同样服务器端可以接收用户的输入,处理和显示用户要求的数据。

在技术最前沿的是开放源代码群体,他们把解决基于Web的问题仅仅看作是对技术的纯粹的爱好。开放源代码软件不仅仅是自由软件(虽然不是所有的都是免费的),而且从它的名字就可以看出,开放源代码就是公开程序的源代码。

开放源代码意味着程序的作者必须按照一定的规则来做事。如果程序缺乏维护,就可能会有问题,按规则来做事的优点是,如果作者没有修正,别的人也可修正。很多独立的程序员懂得程序能做些什么,并能确保程序遵循一定的准则,防止程序作者控制软件的用户,而这在商业软件中是经常发生的。

本书覆盖的内容

PHP是本书的主题,它是一种服务器端的开放源代码的脚本语言,它把Web开发带到了一个新的时代。

在这本书里,我们将向你介绍什么是PHP,它是怎样简化服务器端的脚本编程的,以及它是怎样给你的Web页面增加新的功能的。

具体来说,我们将讲述以下几方面的内容:

PHP的语言结构和语法,包括数据类型、操作符、表达式和函数。

在服务器上安装PHP脚本引擎的过程。

可大大提高PHP性能的扩展模块。

服务器端的编程。

PHP的案例研究。

本书读者对象

这本书是为那些要实现从简单的静态网页到基于Web应用程序的人写的。如果你正准备建立一个数据库驱动的网站,或者你不了解整个动态网页产生的过程,或仅仅是做一些好看的服务器端脚本,请读本书。如果你是富有经验的开发者,直到最近还只能用它在Kewl-OS操作系统上产生简单输出,但觉得有必要构造更轻便、能够在短时间内开发出来的解决方案,也可参考本书。

本书假定读者有Web技术的一些基本知识,可以轻松写出HTML,有用脚本语言或编程语言写程序的经验,懂得基于Web的信息系统的工作原理。也假定读者对数据库有概念上的了解,当然,对这些数据库系统了解得越深,就越容易理解本书所用到的一些例子(特别是理解数据库和购物车应用的那些章节中的例子)。

环境需求

要做服务器端的编程,你的电脑上需要一个Web服务器。它可以是Windows平台上的IIS,或者其他操作系统上的服务器,像Apache、Xitami。Apache是目前用得最多的Web服务器,占有60%的市场份额。

要用服务器端的脚本工具,你需要在服务器上安装和配置PHP语言解释器。我们会在本书的前面一部分介绍。在客户端,你可以自由选择用IE浏览器或者Netscape Communicator,也可以是其他的Web浏览器,如Opera等。

如果你想运行全部的代码,你应该有一个可用的关系型数据库。这方面可选择的范围很广,这将在本书的后面介绍。本书选用MySQL关系数据库。

对编程本身,你所需要的是一个好的文本编辑器,像Windows的写字板、gnotepad或Emacs(译者注:推荐使用EditPlus 2,它可以在http://www.editplus.com上得到。另外,在http://phpuser.com/msic/phpeditor.php可以看到更多的关于编辑器的信息)。脚本都是简单的文本文件,通常嵌入在生成网页的描述语言里。

请把你的想法告诉我们

我们尽力把书编得更有用。使书更符合你的期望和要求。

请告诉我们你对本书的看法,告诉我们本书的哪些内容写得好,哪些写得不好。这不是商业上的花言巧语,我们的确会在众多的电子邮件中找出你的想法。如果你不相信,那么给我们留言,我们会答复而且在书的下一版中参考你的意见。最方便的途径是用电子邮件:feedback@wrox.com。你也可以在我们的网站上了解关于Wrox出版社更多的细节。你可以看到我们最新的书里面的代码,可以预览即将出版的书目,和一些有关著者编者的信息。

客户支持

如果你在本书中发现了错误,请先看我们网站上关于这本书的勘误表。如果你找不到解答,告诉我们问题的位置,我们会尽快尽我们所能来解决。
邮件地址:

support@wrox.com
网站:

http://www.wrox.com/contacts.asp。

作者简介

Jesus Castagnetto:暂无简介

译者简介

薛忠胜 石征 杨登峰 郑丰:暂无简介

译者序

当Rasmus Lerdorf在1994年用一些Perl脚本来跟踪那些看他的简历的人时,他也许不会想到会造就今天PHP的辉煌。根据英国Net Craft公司(http://www.netcraft.com/Survery/)的调查,到2000年9月份,PHP在全球3 602 795个域名、681 637个IP地址上得到了使用。E-Soft公司的调查数据则说明PHP是最受欢迎的Apache模块。应该知道Apache占有全球Web服务器60%以上的市场份额。Apache+PHP+MySQL已经成为在Linux平台上建立动态网站的首选组合;事实上,它们不仅可以用在Linux平台上,还可以用在其他的类UNIX系统甚至Windows平台上。现在,除了Apache之外,PHP还支持AOL公司的AOLserver、微软公司的PWS和IIS、O'Reilly公司的WebSite、Roxen公司的Roxen、Netscape公司的Netscape Enterprise Server等。总的来说,PHP具有如下特点:

1) 是开放源代码软件。

2) 具有很强的跨平台特性,而无需修改代码。

3) 简单易学,任何有C或Java语言基础的人都能很快学会PHP。

4) 基于模块化设计,扩展性强。

5) 支持十几种数据库,并且都是直接的驱动程序,效率很高。

6) 支持动态图像的生成和处理、数据加密、日历、XML、电子邮件(POP和IMAP协议)、电子现金支付、信用卡验证、COM、CORBA、PDF文件、Java(Servlet)代码的调用、动态创建Shockware(Flash)文件等等。

更重要的是新的功能还在不断地增加。

全书可以分为四个部分。第一部分是关于PHP的基础知识,包括PHP的安装,PHP中的变量、函数、语句、表达式等;第二部分讲述PHP的高级内容,例如对文件的处理,对HTML表单的处理;以及对PHP的一些有名的、比较突出的模块的介绍,如MySQL(数据库)、XML、LDAP(目录访问协议)、GD(图像处理),用PHP发送电子邮件;还讲了如何提高PHP和Web服务器的安全性;第三部分是范例部分,结合实际程序来讲述编写PHP代码的特点。共有5个范例:购物车程序、论坛程序、电子邮件程序、数据库浏览器、Session应用程序。研究这些范例,可以很好地消化前面的基本知识,并提高自己的编程水平。最后一部分是附录部分,主要是PHP的函数列表,一些有代表性的问题解答,技巧和文章,以及关于PHP的网络资源。

本书的英文原版由美国Wrox(http://www.wrox.com)出版社出版,在国外是最受欢迎的PHP专业书籍。译者在翻译这本书的时候,发现有些东西与现实不相符了,PHP已经有了不小的发展。本着对读者负责的原则,在征得出版社的同意后,译者对原书的部分内容做了修改(例如安装部分),并增加了一些内容(例如PHP 4新增的foreach语句、Session等),但总的来说,译文还是忠于原书的。

本书由薛忠胜(网名Hunte,PHP中文用户网站站长)组织翻译,石征、杨登峰、郑丰等参与了翻译工作。本书所涉及的内容比较广泛,译者的水平有限,疏漏之处在所难免,还望广大读者不吝指教,更欢迎大家就本书或者PHP脚本语言,到PHP中文用户网站(http://phpuser.com)上畅所欲言。
2000年10月

图书目录

目   录
译者序
作者介绍
前言
第1章  什么是PHP 1
1.1  PHP简介 1
1.1.1  PHP的发展历程 2
1.1.2  PHP的现状 3
1.2  本书的风格和编排 4
1.3  小结 4
1.4  一些有用的网站 4
第2章  安装和配置PHP 6
2.1 安装 6
2.1.1  平台和Web服务器 6
2.1.2  PHP的模块 6
2.1.3  CGI解释器和Apache模块 7
2.1.4  获得PHP 8
2.1.5  在UNIX下建立和安装PHP 10
2.1.6  测试和基准测试 15
2.1.7  在Windows下安装PHP 16
2.1.8  在microsoft pws下安装php 19
2.1.9  在omnihttpd下安装php 20
2.1.10  在microsoft Ⅱs 5.0下安装php 22
2.2  配置 23
2.2.1  在编译时进行配置 24
2.2.2  用Apache命令进行配置 26
2.2.3  利用php.ini文件进行配置 26
2.3  MySQL 35
2.3.1  安装MySQL 36
2.3.2  配置系统的访问权限 39
2.4  Boutell的GD库:支持创建GIF图片 40
2.5  Expat:XML分析支持 41
2.6  小结 41
2.7  建议读物 41
第3章  在Web环境下编程 42
3.1  为什么用PHP 42
3.2  Web方面的技术 43
3.2.1  静态发布 43
3.2.2  动态站点 43
3.3  编写PHP页面 47
3.3.1  PHP和客户端代码 49
3.3.2  PHP变量 49
3.3.3  与用户交互 50
3.3.4  处理表单数据 52
3.4  一个工作申请表 53
3.4.1  URL编码的介绍 54
3.4.2  注释代码 58
3.4.3  字符转义 59
3.5  小结 61
第4章  变量、常量和数据类型 63
4.1  数据类型 63
4.2  数据的值 63
4.3  常量 63
4.3.1  定义常量 64
4.3.2  内置常量 64
4.4  变量的声明和初始化 65
4.5  类型转变和类型强制 65
4.5.1  字符转变和类型转变 66
4.5.2  类型强制 66
4.6  变量的变量 66
4.7  关于变量的一些有用函数 67
4.8  建立一个在线工作申请表 69
4.9  小结 72
第5章  操作符 73
5.1  算术运算符 73
5.2  赋值符号 73
5.3  比较符号 73
5.4  逻辑操作符 75
5.5  字符串连接符号 76
5.6  三元操作符 77
5.7  位运算符 77
5.8  变量赋值的简洁方式 78
5.9  其他类型操作符 79
5.9.1  变量操作符 79
5.9.2  对象操作符 79
5.9.3  错误抑制符号 79
5.10  操作符的优先级和组合 80
5.11  建立一个在线的工作申请表 81
5.12  小结 83
第6章  语句 84
6.1  条件语句 84
6.1.1  if语句 84
6.1.2  分支条件语句 85
6.1.3  switch语句 86
6.2  循环 88
6.2.1  while循环 88
6.2.2  do...while循环 89
6.2.3  for循环 90
6.2.4  foreach语句 91
6.3  在PHP脚本中包含文件 91
6.4  从PHP脚本中退出 92
6.5  建立一个在线工作申请表 92
6.6  小结 96
第7章  函数 97
7.1  函数如何工作 97
7.2  变量的作用范围和生命周期 101
7.3  函数的嵌套和递归 102
7.4  把函数赋给一个变量 104
7.5  建立一个在线工作申请表 104
7.6  小结 109
第8章  数组 110
8.1  简单数组 110
8.1.1  初始化数组 110
8.1.2  数组的遍历 111
8.2  字符串索引的数组 115
8.3  多维数组 118
8.4  排序函数 119
8.5  在表单元素中使用数组 122
8.6  小结 123
第9章  面向对象的编程 125
9.1  什么是面向对象的编程 125
9.1.1  分类 126
9.1.2  实例化 130
9.2  继承 132
9.3  小结 135
第10章  字符串处理和正规表达式 136
10.1  基本的字符串函数 136
10.2  正规表达式 139
10.2.1  基本模式匹配 140
10.2.2  正规表达式函数 144
10.3  建立在线工作申请表 147
10.4  小结 154
第11章  文件处理与数据存储 155
11.1  文件处理 155
11.1.1  打开文件 155
11.1.2  关闭文件 156
11.1.3  显示文件内容 156
11.1.4  从文件中读取内容 156
11.1.5  把数据写入文件 157
11.1.6  文件的遍历 158
11.1.7  拷贝、删除和重命名文件 159
11.1.8  决定文件的属性 159
11.1.9  目录的处理 160
11.2  从客户端上载文件 162
11.2.1  处理上载文件 162
11.2.2  确定文件有效 163
11.3  完善工作申请表 164
11.4  非关系型数据库 170
11.4.1  程序说明 170
11.4.2  地址簿的用户界面 171
11.4.3  设计总体查看的表单 171
11.4.4  数据库查询 174
11.4.5  删除条目 175
11.4.6  显示条目 176
11.4.7  编辑地址簿 177
11.4.8  更新数据库 178
11.4.9  增加新条目 178
11.4.10  从CSV文件输入数据 180
11.4.11  综合起来 181
11.5  小结 183
第12章  PHP与SQL数据库 184
12.1  为何要使用数据库 184
12.2  结构化查询语言 186
12.2.1  PHP写的SQL代码测试器 186
12.2.2  SQL语言参考 190
12.3  PHP对数据库连接的支持 198
12.3.1  MySQL数据库 198
12.3.2  PHP中对MySQL支持的函数 200
12.4  一个PHP和MySQL应用程序的例子 215
12.5  小结 227
第13章  PHP与LDAP 228
13.1  目录服务与LDAP 228
13.1.1  ldap特性 229
13.1.2  ldap与大规模数据库 230
13.2  LDAP的工作 230
13.2.1  ldap组件 231
13.2.2  ldap的数据组织 231
13.2.3  ldap说明 232
13.2.4  目录与数据库 233
13.2.5  ldap的操作 233
13.2.6  ldap的方言—ldif 234
13.2.7  ldap的一些高级特性 236
13.3  LDAP软件 237
13.3.1  ldap软件的选择 237
13.3.2  安装与配置ldap服务器 238
13.3.3  运行slapd服务器 239
13.4  PHP对LDAP的支持 241
13.4.1  PHP提供的LDAP API 241
13.4.2  连接函数 242
13.4.3  查询函数 242
13.4.4  修改函数 245
13.4.5  PHP的ldap应用程序 246
13.5  小结 258
第14章  XML 260
14.1  什么是XML 260
14.2  XML语言 262
14.2.1  XML文档的结构 263
14.2.2  文档类型定义 264
14.3  PHP对XML的支持 268
14.4  PHP的XML函数 268
14.4.1  生成XML解析器 270
14.4.2  注册回调函数 271
14.4.3  解析XML文档 277
14.4.4  释放解析器 278
14.4.5  解析器选项 278
14.4.6  实用函数 278
14.5  PHP的XML应用程序 280
14.5.1  支持Web的企业级应用程序 280
14.5.2  聪明的检索 280
14.5.3  转换XML到HTML 280
14.5.4  相同数据的不同外观 281
14.6  PHP XML应用程序示例 281
14.7  小结 292
第15章  图像生成和处理 294
15.1  图像和服务器端脚本 294
15.2  PHP中的图像处理 297
15.2.1  安装具有图像支持的PHP 297
15.2.2  PHP的图像函数 298
15.3  使用图像函数的应用程序 319
15.3.1  使用PHP的示例图像应用 319
15.3.2  显示计数器的页面 320
15.3.3  记录点击次数 320
15.3.4  生成图像 322
15.4  小结 323
第16章  网络连接 324
16.1  客户和服务器 324
16.2  使用TCP 324
16.3  whois 函数 325
16.4  前台的界面 327
16.5  扩展前台界面 328
16.6  我的域名仍然可用吗 329
16.7  Web客户端 330
16.8  小结 334
第17章  发送和接收电子邮件 335
17.1  发送电子邮件 335
17.1.1  mail() 命令 335
17.1.2  mime_mail 类 336
17.1.3  使用SMTP 340
17.2  接收电子邮件 344
17.3  小结 347
第18章  cookie 349
18.1  什么是cookie 349
18.2  cookie的限制 349
18.3  PHP中的cookie 350
18.3.1  开始 350
18.3.2  你的名字是什么 352
18.4  存取一个cookie 352
18.5  设置一个cookie 353
18.5.1  多值cookie 353
18.5.2  设置失效日期 353
18.5.3  限制cookie的范围 354
18.6  删除一个cookie 355
18.7  一般未知危险 355
18.8  发送HTTP头 356
18.9  小结 357
第19章  调试及错误处理 358
19.1  错误的类型 358
19.1.1  语法错误 358
19.1.2  语义错误 360
19.1.3  逻辑错误 361
19.1.4  环境错误 362
19.2  php的出错信息 362
19.2.1  php的错误级别 363
19.2.2  设置错误报告的级别 366
19.3  错误处理 366
19.3.1  抑制错误信息 367
19.3.2  错误之后的完美恢复 367
19.3.3  错误检查的定制 368
19.4  记录错误 368
19.5  一些常见的错误 373
19.5.1  已发送头信息 373
19.5.2  未定义函数 373
19.5.3  字符转义错误 374
19.5.4  最大执行时间 375
19.6  小结 375
第20章  安全问题 377
20.1  安全的重要性 377
20.2  从头开始 377
20.3  保护Web服务器 378
20.4  使PHP更为安全 381
20.5  使用安全模式 383
20.6  用户识别和验证 383
20.7  使用加密技术 386
20.8  使用SSL 388
20.8.1  下载OpenSSL和ModSSL 389
20.8.2  编译和安装OpenSSL库 389
20.8.3  编译和安装mod_ssl 392
20.8.4  SSL基本配置 394
20.8.5  安装专用密钥 395
20.8.6  创建证书请求和临时证书 396
20.8.7  取得签名证书 397
20.9  使用Apache的suEXEC机制 397
20.10  创建安全的php脚本 398
20.11  小结 401
第21章  字符的自动转义 402
21.1  问题所在 402
21.1.1  转换过程 402
21.1.2  定义使用范围 403
21.2  使用自动转义 403
21.3  两个有用的函数 405
21.4  可选方式 407
21.5  小结 407
第22章  模板 408
22.1  通用的模板技术 408
22.2  在应用程序中使用模板 408
22.2.1  内嵌PHP 408
22.2.2  分离通用部分的代码 409
22.2.3  快速模板 410
22.2.4  网站框架 415
22.3  现有代码与快速模板 417
22.4  小结 417
第23章  案例1—购物车应用程序 418
23.1  需求分析 418
23.2  选择应用程序所需的软件 419
23.3  最终用户和购物车应用程序的交互 420
23.4  设计购物车应用程序 421
23.4.1  数据库设计 422
23.4.2  中间层的设计 425
23.5  最终用户特性的实现 426
23.6  应用程序代码 432
23.7  管理界面的实现 457
23.8  小结 475
第24章  案例2—Phorum论坛程序 476
24.1  为什么使用PHP 476
24.1.1  数据库支持 476
24.1.2  在HTML中内嵌PHP 477
24.1.3  异常错误的处理 479
24.2  Phorum怎样运行 479
24.3  代码研究 482
24.3.1  代码重用 482
24.3.2  数据库的抽象层 482
24.3.3  动态生成PHP代码 483
24.3.4  在cookie中存放用户数据 484
24.3.5  核心文件forums.inf 485
24.3.6  论坛列表 488
24.3.7  列出消息 489
24.3.8  阅读消息 493
24.3.9  张贴消息 494
24.3.10  搜索 499
24.4  小结 501
第25章  案例3—电子邮件程序 503
25.1  程序功能 503
25.2  程序实现 503
25.3  小结 512
第26章  案例4—数据库浏览器 513
26.1  设计应用程序 514
26.2  数据库图解 515
26.2.1  Protein表 515
26.2.2  位置表 516
26.3  脚本的整体设计 517
26.4  简单SQL查询脚本 517
26.5  包含外部函数模块 520
26.5.1  生成SQL语句 520
26.5.2  数据中间层脚本 523
26.5.3  显示结果 525
26.6  查询标识字段 527
26.7  扩展查询界面 532
26.8  一些想法 541
26.9  小结 542
第27章  案例5—session应用程序 543
27.1  关于session 543
27.2  在php3中实现session 544
27.2.1  安装和初始化 544
27.2.2  基本使用方法 545
27.2.3  实地演习 546
27.3  php4中的session 547
27.3.1  从这里开始 547
27.3.2  与session相关的php.ini配置 549
27.3.3  php4中的session函数 550
27.4  session的定制 552
27.5  小结 558
附录A  PHP函数 559
附录B  关于PHP的10个常见问题 759
附录C  关于PHP的10个技巧 765
附录D  关于PHP的10篇文章 770

教学资源推荐
作者: (美)Eric S.Roberts
作者: [美]雷蒙德·盖拉多(Raymond Gallardo) 斯科特·霍梅尔(Scott Hommel) 索娅·坎南(Sowmya Kannan) 琼尼·戈登(Joni Gordon) 沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour)著
作者: [美]加里·R. 赖特(Gary R. Wright),W. 理查德·史蒂文斯(W. Richard Stevens) 著
作者: (美)Stuart Reges,Marty Stepp 著
参考读物推荐
作者: 董超 胡炽维 编著
作者: (美)P. Taylor Goetz  Brian O'Neill著
作者: 吴永辉 王建德 杨溢 李明韫 等编著