这是一本可以让读者深入了解PHP技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。《PHP编程(第3版)》涵盖了PHP 所有基本的要点,不管你是一个想从头开始学习PHP的人,还是对PHP 已经有了基础想继续深入的人,这本书都很合适。
基本介绍
- 书名:PHP编程(第3版)
- 作者:【美】Kevin Tatroe,Peter MacIntyre,Rasmus Lerdorf 编
- 译者:赵戈戈 易国磐 张鹏飞 译
- ISBN:978-7-121-25312-6
- 类别:程式语言
- 页数:536
- 定价:99.00元
- 出版社:电子工业出版社
- 出版时间:2015-03
- 装帧:平装
- 开本:16
内容提要
这是一本可以让读者深入了解PHP 技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。《PHP编程(第3版)》涵盖了PHP 所有基本的要点,不管你是一个想从头开始学习PHP的人,还是对PHP 已经有了基础想继续深入的人,这本书都很合适。
目录
序言 .............................................................................xxi
前言 ........................................................................... xxiii
第1 章 PHP 介绍 ........................................................... 1
PHP 可以做什幺 ....................................................................................................1
PHP 历史简述 ........................................................................................................2
PHP 的演变 .....................................................................................................2
PHP 的广泛使用 ..............................................................................................7
安装PHP ................................................................................................................7
PHP 的发展 ............................................................................................................8
配置页 .............................................................................................................9
表单 .................................................................................................................9
资料库 ........................................................................................................... 11
图像 ...............................................................................................................13
第2 章 语言基础 .......................................................... 15
词法结构 ..............................................................................................................15
大小写 ...........................................................................................................15
语句和分号 ...................................................................................................15
空白符和换行 ................................................................................................16
注释 ...............................................................................................................17
字面量 ...........................................................................................................20
标识符 ...........................................................................................................20
关键字 ...........................................................................................................21
数据类型 ..............................................................................................................22
整型 ...............................................................................................................22
浮点数 ...........................................................................................................23
字元串 ...........................................................................................................24
布尔型 ...........................................................................................................25
数组 ...............................................................................................................26
对象 ...............................................................................................................27
资源 ...............................................................................................................28
回调 ...............................................................................................................29
NULL ............................................................................................................29
变数 .....................................................................................................................29
变数的变数 ...................................................................................................30
变数的引用 ...................................................................................................30
变数的作用域 ................................................................................................31
垃圾收集 .......................................................................................................33
表达式和操作符 ...................................................................................................35
操作符的数目 ................................................................................................36
操作符的优先权 ............................................................................................36
操作符的结合性 ............................................................................................37
隐式转换 .......................................................................................................37
算术操作符 ...................................................................................................38
字元串连线操作符 ........................................................................................39
自动递增/自动递减操作符 .........................................................................39
比较操作符 ...................................................................................................40
位操作符 .......................................................................................................41
逻辑操作符 ...................................................................................................43
类型转换操作符 ............................................................................................43
赋值操作符 ...................................................................................................45
其他操作符 ...................................................................................................46
流程控制语句 ......................................................................................................47
if ....................................................................................................................47
switch ............................................................................................................50
while ..............................................................................................................51
for ..................................................................................................................54
foreach ...........................................................................................................55
try...catch .......................................................................................................56
declare ...........................................................................................................56
exit 和 return .................................................................................................57
goto ...............................................................................................................57
包含代码 ..............................................................................................................58
在Web 页面中嵌套PHP ......................................................................................60
标準(XML)风格 .......................................................................................60
SGML 风格 ...................................................................................................62
ASP 风格 .......................................................................................................62
Script 风格 ....................................................................................................62
直接输出内容 ................................................................................................63
第3 章 函式 ................................................................ 65
调用函式 ..............................................................................................................65
定义函式 ..............................................................................................................66
变数作用域 ..........................................................................................................68
全局变数 .......................................................................................................69
静态变数 .......................................................................................................70
函式参数 ..............................................................................................................70
按值传递参数 ................................................................................................70
按引用传递参数 ............................................................................................71
默认参数 .......................................................................................................71
可变参数 .......................................................................................................72
遗漏参数 .......................................................................................................73
类型提示 .......................................................................................................74
返回值 ..................................................................................................................74
可变函式 ..............................................................................................................75
匿名函式 ..............................................................................................................76
第4 章 字元串 ............................................................. 79
引用字元串常量 ...................................................................................................79
变数插值 .......................................................................................................79
单引号括起来的字元串 .................................................................................80
双引号括起来的字元串 .................................................................................80
here 文档 .......................................................................................................81
输出字元串 ..........................................................................................................82
echo ...............................................................................................................83
print() ............................................................................................................83
printf() ...........................................................................................................83
print_r() 和var_dump() .................................................................................85
访问单个字元 ......................................................................................................87
整理字元串 ..........................................................................................................87
删除空白符号 ................................................................................................87
改变大小写 ...................................................................................................88
编码和转义 ..........................................................................................................89
HTML ............................................................................................................89
URL ...............................................................................................................92
SQL ...............................................................................................................93
C 语言字元串编码 .........................................................................................93
比较字元串 ..........................................................................................................94
精确比较 .......................................................................................................94
近似相等 .......................................................................................................96
处理和查找字元串 ...............................................................................................98
子串 ...............................................................................................................98
其他字元串函式 ............................................................................................99
分解字元串 ................................................................................................. 100
字元串查找函式 .......................................................................................... 102
正则表达式 ........................................................................................................ 105
基础 ............................................................................................................. 105
字元类 ......................................................................................................... 106
选择性 ......................................................................................................... 107
重複序列 ..................................................................................................... 107
子模式 ......................................................................................................... 108
分隔设定 ......................................................................................................... 108
匹配行为 ..................................................................................................... 109
字元类 ......................................................................................................... 109
锚 ................................................................................................................ 111
量词和贪婪 ................................................................................................. 111
非捕获组 ..................................................................................................... 112
逆向引用 ..................................................................................................... 112
后缀选项 ..................................................................................................... 112
内联选项 ..................................................................................................... 114
前向和后向断言 .......................................................................................... 114
剪下 ............................................................................................................. 115
条件表达式 ................................................................................................. 116
正则表达式的相关函式 ............................................................................... 116
和Perl 正则表达式的差别 ........................................................................... 122
第5 章 数组 .............................................................. 123
索引数组和关联数组 ......................................................................................... 123
识别数组元素 .................................................................................................... 124
在数组中存储数据 ............................................................................................. 124
在数组末尾添加值 ...................................................................................... 126
指定值的範围 .............................................................................................. 126
获得数组大小 .............................................................................................. 126
填充数组 ..................................................................................................... 127
多维数组 ............................................................................................................ 127
析取多个值 ........................................................................................................ 128
切割数组 ..................................................................................................... 128
数组分块 ..................................................................................................... 129
键(Key)和值(Value) ............................................................................. 130
检查元素是否存在 ...................................................................................... 130
在数组中删除和插入元素 ........................................................................... 131
数组和变数间的转换 ......................................................................................... 132
从数组创建变数 .......................................................................................... 133
从变数创建数组 .......................................................................................... 133
遍历数组 ............................................................................................................ 133
foreach 结构 ................................................................................................ 134
叠代器函式 ................................................................................................. 134
使用for 循环 ............................................................................................... 136
为数组中的每个元素调用函式 .................................................................... 136
数组归纳 ..................................................................................................... 137
查找元素值 ................................................................................................. 138
排序 ................................................................................................................... 139
一次排序一个数组 ...................................................................................... 140
按自然顺序排序 .......................................................................................... 142
一次对多个数组进行排序 ........................................................................... 143
翻转数组 ..................................................................................................... 143
随机排序 ..................................................................................................... 144
作用于整个数组 ................................................................................................. 145
计算数组的和 .............................................................................................. 145
合併两个数组 .............................................................................................. 145
计算两个数组的不同 ................................................................................... 146
从数组中过滤元素 ...................................................................................... 146
使用数组 ............................................................................................................ 147
集合 ............................................................................................................. 147
堆叠 ............................................................................................................. 148
叠代器接口 ........................................................................................................ 149
第6 章 对象 .............................................................. 153
术语 ................................................................................................................... 154
创建一个对象 .................................................................................................... 154
访问对象的属性和方法 ...................................................................................... 155
声明一个类 ........................................................................................................ 156
声明方法 ..................................................................................................... 157
声明属性 ..................................................................................................... 159
声明类常量 ................................................................................................. 161
继承 ............................................................................................................. 162
接口 ............................................................................................................. 163
特徵 ............................................................................................................. 163
抽象类方法 ................................................................................................. 167
构造函式 ..................................................................................................... 168
析构函式 ..................................................................................................... 169
自省 ................................................................................................................... 170
类检验 ......................................................................................................... 170
对象检验 ..................................................................................................... 171
自省程式示例 .............................................................................................. 172
序列化 ................................................................................................................ 176
第7 章 Web 技术 ...................................................... 181
HTTP 基础 ......................................................................................................... 181
变数 ................................................................................................................... 182
伺服器信息 ........................................................................................................ 183
处理表单 ............................................................................................................ 185
方法 ............................................................................................................. 185
参数 ............................................................................................................. 186
自处理页面 ................................................................................................. 187
粘性表单 ..................................................................................................... 189
多值参数 ..................................................................................................... 190
粘性多值参数 .............................................................................................. 192
档案上传 ..................................................................................................... 194
表单验证 ..................................................................................................... 195
设定回响头 ........................................................................................................ 197
不同的内容类型 .......................................................................................... 198
重定向 ......................................................................................................... 198
过期 ............................................................................................................. 198
认证 ............................................................................................................. 199
维护状态 ............................................................................................................ 200
cookie .......................................................................................................... 201
会话 ............................................................................................................. 204
结合cookie 和会话 ..................................................................................... 207
SSL .................................................................................................................... 208
第8 章 资料库 ........................................................... 209
使用PHP 访问资料库 ........................................................................................ 209
关係型资料库和SQL ......................................................................................... 210
PHP 数据对象 ............................................................................................. 211
MySQLi 对象接口 .............................................................................................. 214
检索数据显示 .............................................................................................. 215
SQLite ................................................................................................................ 216
直接档案级别操作 ............................................................................................. 220
MongoDB ........................................................................................................... 228
检索数据 ..................................................................................................... 231
插入更複杂的数据 ...................................................................................... 231
第9 章 图像 ............................................................. 235
在网页中嵌入图片 ............................................................................................. 235
基本图像概念 .................................................................................................... 236
创建和绘製图像 ................................................................................................. 237
图像程式的结构 .......................................................................................... 238
变更输出格式 .............................................................................................. 239
图片格式支持测试 ...................................................................................... 239
读取已有的档案 .......................................................................................... 240
基本画图函式 .............................................................................................. 240
带文本的图像 .................................................................................................... 242
字型 ............................................................................................................. 243
TrueType 字型 ............................................................................................. 243
动态生成按钮 .................................................................................................... 245
快取动态生成的按钮 ................................................................................... 246
更快的快取 ................................................................................................. 247
图片缩放 ............................................................................................................ 249
颜色处理 ............................................................................................................ 251
使用 alpha 通道 ........................................................................................... 252
颜色识别 ..................................................................................................... 253
真彩色索引 ................................................................................................. 254
图像的文本形式 .......................................................................................... 255
第10 章 PDF ............................................................ 257
PDF 扩展 ........................................................................................................... 257
文档和页面 ........................................................................................................ 257
简单的示例 ................................................................................................. 258
初始化文档 ................................................................................................. 259
输出文本单元格 .......................................................................................... 259
文本 ................................................................................................................... 259
坐标 ............................................................................................................. 259
文本属性 ..................................................................................................... 262
页眉、页脚和类扩展 ................................................................................... 264
图片和连结 ................................................................................................. 266
表格和数据 ................................................................................................. 269
第11 章 XML ............................................................ 273
XML 快速入门 ................................................................................................... 273
生成 XML .......................................................................................................... 275
解析 XML .......................................................................................................... 277
元素处理器 ................................................................................................. 277
字元数据处理器 .......................................................................................... 278
处理指令 ..................................................................................................... 279
实体处理器 ................................................................................................. 279
默认处理器 ................................................................................................. 281
选项 ............................................................................................................. 282
使用解析器 ................................................................................................. 282
错误 ............................................................................................................. 284
方法作为处理器 .......................................................................................... 285
示例解析程式 .............................................................................................. 285
用DOM 解析 XML ............................................................................................ 290
用SimpleXML 解析 XML ................................................................................. 291
用 XSLT 转换 XML ........................................................................................... 292
第12 章 安全 ............................................................ 295
过滤输入 ............................................................................................................ 295
跨站脚本 ............................................................................................................ 297
SQL 注入 ..................................................................................................... 298
转义输出 ............................................................................................................ 299
档案名称 ......................................................................................................... 304
会话固定 ............................................................................................................ 306
档案上传 ............................................................................................................ 306
不要相信浏览器提供的档案名称 .................................................................... 306
提防档案系统填充 ...................................................................................... 307
尚存的 register_globals ............................................................................... 307
档案访问 ............................................................................................................ 308
限制档案系统访问特定目录 ....................................................................... 308
第一次就做对 .............................................................................................. 309
不要使用档案 .............................................................................................. 309
会话档案 ..................................................................................................... 309
隐藏 PHP 库 ................................................................................................ 310
PHP 代码 ............................................................................................................ 310
命令行脚本 ........................................................................................................ 312
更多信息 ............................................................................................................ 312
安全概要重述 .................................................................................................... 313
第13 章 套用技术 ...................................................... 315
代码库 ................................................................................................................ 315
模板系统 ............................................................................................................ 316
处理输出 ............................................................................................................ 319
输出缓冲 ..................................................................................................... 319
压缩输出 ..................................................................................................... 321
错误处理 ............................................................................................................ 321
错误报告 ..................................................................................................... 321
错误抑制 ..................................................................................................... 323
触发错误 ..................................................................................................... 323
定义错误处理器 .......................................................................................... 324
性能调优 ............................................................................................................ 327
基準测试 ..................................................................................................... 328
分析 ............................................................................................................. 329
最佳化执行时间 .............................................................................................. 331
最佳化记忆体占用 .............................................................................................. 331
反向代理和複製 .......................................................................................... 331
第14 章 不同平台的PHP .......................................... 335
为Windows 和UNIX 写可移植的代码 .............................................................. 335
确定平台 ..................................................................................................... 336
跨平台处理路径 .......................................................................................... 336
伺服器环境 ................................................................................................. 336
传送邮件 ..................................................................................................... 337
行尾处理 ..................................................................................................... 337
档案尾部处理 .............................................................................................. 338
外部命令 ..................................................................................................... 338
常见的特定平台扩展 ................................................................................... 338
COM 接口 .......................................................................................................... 339
背景 ............................................................................................................. 339
PHP 函式 ..................................................................................................... 341
确定 API ...................................................................................................... 341
第15 章 网页服务 ...................................................... 343
REST 客户端 ..................................................................................................... 343
回响 ............................................................................................................. 345
获取资源 ..................................................................................................... 348
更新资源 ..................................................................................................... 348
创建资源 ..................................................................................................... 349
删除资源 ..................................................................................................... 350
XML-RPC .......................................................................................................... 350
伺服器 ......................................................................................................... 350
客户端 ......................................................................................................... 352
第16 章 调试PHP ..................................................... 355
开发环境 ............................................................................................................ 355
预演环境 ............................................................................................................ 356
生产环境 ............................................................................................................ 356
php.ini 配置 ........................................................................................................ 357
手动调试 ............................................................................................................ 358
错误日誌 ............................................................................................................ 360
IDE 调试 ............................................................................................................ 361
更多的调试技术 ................................................................................................. 362
第17 章 日期和时间 .................................................. 363
附录A 函式参考 ........................................................ 367
索引 ........................................................................... 487
前言
到目前为止,Web 是团队和个人沟通的最大媒介。网页承载着人造卫星拍摄的地球全貌图像、外太空生命探索、家庭个人相册、购物车和产品列表。很多网页都是用PHP 驱动的,这是一个为HTML 而生的开源脚本语言。
自1994 年创造以来,PHP 因其惊人的增长风靡网路,IBM 和Oracle(仅举几例)也曾推荐。
数百万的网站使用PHP 足以证明它的流行和易用。每天人们可以学习PHP 并且构建强大的动态网页。Marc Andreessen,Andreessen Horowitz 的搭档和 Netscape 社区的创始人,最近说过 PHP 已经取代 Java 成为最主要的 Web 语言。
PHP 5 以后的语言核心突出了强大的字元串和数组处理工具,还有对面向对象的支持和最佳化。用可选的扩展模组,一个PHP 套用可以和MySQL 或Oracle 资料库互动、画图、创建PDF 档案和解析XML 档案。你可以用 C 语言写自己的扩展模组,例如,要为已有的代码库提供一个PHP 接口。你也可以在Windows 上运行 PHP,也可以让你控制其他Windows 应用程式,例如用COM 调用Word 和Excel,或者使用ODBC 和资料库互动。
这本书是PHP 语言的指南。当读完后,你会知道PHP 语言是如何工作的,如何在标準的PHP 中使用强大的扩展,如何设计自己的PHP 网页程式。读者
PHP 是一个文化熔炉。网页设计者会感受它的易用性和便利性,程式设计师会感受它的易扩展性、强大、多样性和速度。两种文化需要清晰和精确地引申到语言。如果你是一个程式设计师,这本书适合你。我们展示了PHP 语言的蓝图,并且不浪费你的时间来讨论具体的例子。许多例子都有详细的解释,并且实际编程建议和代码风格提示都使你不止是一个PHP 程式设计师,而是更好的PHP 程式设计师。
如果你是一个网页设计者,会感受到特定的技术都有清晰有用的指南,比如XML、会话、PDF 生成和图像。你可以快速获取到你需要的信息,用简单术语表达的基本的编程原则。这本书已经过完整的校对来应对最新的PHP 5 的特性。
前提
该书假设你有HTML 的工作经验,如果你不会HTML,需要在学习PHP 之前从一些简单的网页获得一些经验。更多关于HTML 的信息,我们推荐 Chunk Musciano 和Bill Kennedy 写的HTML & XHTML: The Definitive Guide 一书(由O’Reilly 出版)。
本书内容
我们精心编排了本书内容让你可以从开始顺序阅读或者跳着阅读感兴趣的主题。全书共有17 章和1 个附录。如下所示。
第1 章,PHP 介绍
讲述关于PHP 的历史并概述可以用PHP 程式做什幺。
第2 章,语言基础
PHP 元素的简明指南。比如定义符、数据类型、操作符和流控制语句。
第3 章,函式
讨论用户定义的函式。包含作用域、变数长度参数列表、变数和匿名函式。
第4 章,字元串
涵盖你在用PHP 代码构建、解析、搜寻和修改字元串时需用到的函式。
第5 章,数组
介绍用PHP 代码构建、处理和排序数组的函式和详细注释。
第6 章,对象
涵盖PHP 的面向对象的新特性。在本章中,你会了解类、对象、继承和自省。
第7 章,Web 技术
讨论网页基础,例如表单参数和验证、Cookie 以及会话。
第8 章,资料库
讨论PHP 使用资料库的模组和函式,使用PEAR 资料库和MySQL 资料库作为例子。同时,也会涵盖SQLite 资料库引擎和新的PDO 接口。
第9 章,图像
示範如何用PHP 创建和修改不同格式的图像档案。
第10 章,PDF
解释如何从PHP 程式创建动态的PDF 档案。
第11 章,XML
介绍PHP 更新的扩展,用来生成和解析XML 数据。
第12 章,安全
为程式设计师创建安全的脚本提供有价值的建议和引导。你会了解编程技术的最佳实践,帮你避免会带来灾难的错误。
第13 章,套用技术
讲述大多数PHP 程式设计师最终都会用到的高级技术,介绍错误处理和性能调优。
第14 章,不同平台的 PHP
讲解Windows 端PHP 的技巧和陷阱,也会讲到Windows 上独特的 COM 特性。
第15 章,网页服务
提供用PHP 创建现代网页服务API 的技术,和连线其他系统的API。
第16 章,调试PHP
讲述调试PHP 代码的技术和如何编写可调试的PHP 代码。
第17 章,日期和时间
讲述PHP 处理日期和时间的内建类。
附录A
PHP 所有核心函式的快速参考。
本书约定
本书使用如下的印刷约定:
斜体(Italic)
表示新的术语、URL、邮件地址、档案名称和档案扩展名。
等宽字型(Constant width)
用来表示程式代码,也会在一个普通段落中用来引用变数或者函式名、资料库、数据类型、环境变数、表达式以及关键字。
等宽粗体(Constant width bold)
表示命令或者用户必须正确输入的文本。
等宽斜体(Constant width italic)
用户必须替换为自己的值或者依据上下文的值的文本。
这个图示表示提示、建议或一般性标注。
这个图示表示警告或注意。
中文版书中切口以“ ”表示原书页码,便于读者与原英文版图书对照阅读,本书的索引中所列的页码为原英文版页码。