目 录
第1篇 PHP动态网站和PHP程序语言基础入门篇
第1章 准备基础知识、开发环境及配置
运行环境 2
视频讲解:47分钟
1.1 正确认识PHP动态网站开发 3
1.1.1 正确认识PHP的开发工具 3
1.1.2 正确认识PHP的运行环境 3
1.1.3 关于标准和实现 3
1.2 安装和配置PHP动态网站的
运行环境 4
1.2.1 下载和安装PHP应用程序
服务器 4
1.2.2 了解PHP的版本 5
1.2.3 在Apache下配置PHP 6
1.2.4 在IIS7.0下配置PHP 9
第2章 怎样创建和执行PHP动态网
页——基本操作和基本原理 11
视频讲解:26分钟
2.1 创建第一个PHP网页 12
2.1.1 用什么来创建PHP网页 12
2.1.2 在哪里放置PHP网页 12
2.1.3 通过服务器请求PHP网页 12
2.2 PHP网络应用程序的工作原理 13
2.2.1 Web应用程序的基本工作
原理 13
2.2.2 PHP网络应用程序的基本
工作原理 14
2.3 怎样在PHP网页中编写PHP
程序代码 15
2.3.1 定义PHP执行块 16
2.3.2 PHP输出指令 17
2.3.3 什么是script语言 17
2.3.4 PHP代码与HTML代码
混合 18
第3章 程序开发的基石——声明变量和
使用变量 19
视频讲解:53分钟
3.1 变量的声明 20
3.1.1 声明和命名变量 20
3.1.2 变量的命名规范 21
3.1.3 变量的数据类型 21
3.1.4 易犯的错误 24
3.2 在程序中使用变量 26
3.2.1 为变量赋值和更改变量值 26
3.2.2 使用变量和获取变量值 27
3.2.3 变量的初始化 28
3.3 常量 28
3.3.1 PHP内建常量 29
3.3.2 自定义常量 30
3.4 变量的传值和传址 31
3.4.1 传值变量——按值传递 31
3.4.2 传址变量——按引用传递 31
3.4.3 变量的引用 32
3.5 内存使用规则——堆和栈 33
3.5.1 栈的使用规则 33
3.5.2 堆的使用规则 34
3.6 数据类型转换 35
3.6.1 强制数据类型转换 35
3.6.2 隐式数据类型转换 35
3.7 可变变量 36
第4章 PHP语法规范和良好的
编程习惯 37
视频讲解:60分钟
4.1 空白和多行书写 38
4.1.1 空白 38
4.1.2 多行书写 38
4.2 “->”语法 38
4.3 卷曲花括号 39
4.3.1 引号中包含变量 39
4.3.2 用卷曲花括号界定变量名 39
4.4 分号 40
4.5 圆括号 40
4.6 字母的大小写 41
4.7 程序注释 41
4.7.1 单行注释和尾随注释 41
4.7.2 多行注释 41
4.7.3 文档注释 42
4.7.4 使用HTML注释 42
4.8 关键字 43
4.9 培养良好的编程习惯 43
4.9.1 通用的变量名、方法名、类名
命名约定 43
4.9.2 重构 45
4.9.3 使用注释 45
4.9.4 养成控制内存的好习惯 46
4.9.5 优化代码的一般常识 47
第5章 数据运算和运算规则 49
视频讲解:37分钟
5.1 PHP表达式 50
5.1.1 简单表达式和复合表达式 50
5.1.2 赋值表达式和单值表达式 50
5.2 算术运算符 50
5.3 字符串运算符 52
5.4 赋值运算符 53
5.5 比较运算符和逻辑运算符 54
5.5.1 考虑数据类型 55
5.5.2 全等运算符 56
5.5.3 易犯错的比较运算 57
5.6 位运算符 57
5.7 其他运算符 58
5.7.1 三元条件运算符 58
5.7.2 instanceof运算符 59
5.8 运算符的使用规则 59
5.8.1 运算符优先级规则 59
5.8.2 运算符结合规则 59
第6章 流程控制 61
视频讲解:33分钟
6.1 语句和语句块 62
6.2 if...else条件语句 62
6.3 switch条件语句 66
6.4 do...while循环 68
6.4.1 第一种模式 68
6.4.2 第二种模式 68
6.5 for循环 69
6.6 foreach循环 70
6.7 其他的流程控制 70
6.7.1 break语句 71
6.7.2 continue语句 71
6.7.3 declare语句 72
6.7.4 try...catch...throw语句 72
6.7.5 goto语句 73
6.8 流程控制总结 74
第2篇 PHP数据处理和函数应用篇
第7章 变量处理 77
视频讲解:70分钟
7.1 呈现变量的结构 78
7.2 强制数据类型转换 79
7.2.1 转换为整型 79
7.2.2 转换为逻辑值 80
7.2.3 转换为浮点数 80
7.2.4 字符串转换 80
7.2.5 转换为数组 80
7.2.6 转换为对象 81
7.2.7 字符串转换为数值 81
7.2.8 使用settype()函数转换数据
类型 81
7.2.9 使用其他函数转换数据类型 81
7.3 变量的数据类型判断 82
7.4 判断变量是否为空 83
7.5 isset()语言结构和unset()语言
结构 84
第8章 数组、多维数组、复合数组
(哈希、映射) 85
视频讲解:90分钟
8.1 创建数组 86
8.1.1 创建数组的基本方法 86
8.1.2 索引数组 86
8.1.3 多维数组 88
8.1.4 复合数组 89
8.1.5 删除数组或数组元素 91
8.2 使用运算符进行数组运算 91
8.3 数组操作函数 92
8.3.1 常用的基本操作 94
8.3.2 获取数组的元素数量 95
8.3.3 分别获取数组的键和值 95
8.3.4 遍历数组 96
8.3.5 数组的排序 98
第9章 在PHP中使用正则表达式 102
视频讲解:45分钟
9.1 字符串处理函数 103
9.1.1 加密算法 106
9.1.2 使用数组语法处理字符串 107
9.2 使用正则表达式处理字符串 107
9.2.1 正则表达式基本语法 108
9.2.2 优先权顺序 112
9.3 使用函数处理正则表达式 113
9.3.1 Perl兼容正则表达式函数 113
9.3.2 了解PCRE模式修正符 120
9.3.3 使用正则表达式判断字符串
是否是全中文 121
9.4 POSIX扩展正则表达式函数 121
思考与练习 122
第10章 处理日期和时间 123
视频讲解:47分钟
10.1 使用DateTime类处理日期和
时间 124
10.1.1 日期和时间操作中常用到的
概念 124
10.1.2 配置选项 125
10.1.3 DateTime类的构造方法 125
10.1.4 格式化日期和时间 126
10.1.5 修改日期和时间 128
10.2 使用DateTimeZone类处理
时区 129
10.3 使用DateInterval类处理时间
间隔 130
10.3.1 createFromDateString()方法 131
10.3.2 format()方法 131
10.3.3 使用日期时间间隔改变
DateTime 132
10.4 使用DatePeriod类创建
时期段 133
10.5 用于处理日期和时间的相关
函数 135
第11章 数学运算和其他常用全局
函数 137
视频讲解:20分钟
11.1 数学运算函数 138
11.2 其他常用函数 140
11.2.1 中止执行当前网页代码——
exit()函数和die()函数 140
11.2.2 延迟执行——sleep()函数、
usleep()函数、time_nanosleep()
函数、time_sleep_until()
函数 141
11.2.3 生成唯一的ID——uniqid()
函数 142
11.2.4 二进制转换——pack()函数、
unpack()函数 143
第12章 自定义函数及函数对变量的
影响 145
视频讲解:71分钟
12.1 函数的定义 146
12.2 函数的调用 146
12.2.1 在函数中定义参数的
初始值 147
12.2.2 条件函数和嵌套函数 147
12.2.3 可变长度参数和函数处理
函数 148
12.2.4 形参和实参 148
12.2.5 匿名函数的定义 149
12.3 变量的作用范围和生命周期 150
12.3.1 script级变量和局部变量 150
12.3.2 全局变量 150
12.3.3 静态变量 151
12.4 在函数中使用引用 152
12.4.1 在函数中传递引用 152
12.4.2 函数返回引用 153
12.5 函数定义的位置和共享——动态
包含 154
12.5.1 配置动态包含的目录 155
12.5.2 被包含文件的位置和权限 155
12.5.3 其他实现动态包含的语言
结构 155
12.5.4 被包含文件的返回值 156
第3篇 与Web页面、Ajax交互应用程序篇
第13章 人机交互的基石——动态网页的
请求和响应 158
13.1 了解请求和响应的基本过程 159
13.1.1 请求和响应的基本过程 159
13.1.2 了解URI、URL和URN 160
13.2 HTTP协议基础 161
13.2.1 了解HTTP消息的内容 161
13.2.2 了解HTTP请求的内容 162
13.2.3 了解HTTP响应的内容 163
13.2.4 了解HTTP消息报头的
内容 165
13.3 在PHP程序中获取和处理请求
报头 166
13.4 对请求作出响应 169
13.4.1 返回消息正文给客户端 170
13.4.2 返回响应状态行和响应报头
给客户端 170
13.4.3 缓存对消息报头的影响 171
13.4.4 重定向 173
13.4.5 设置响应内容的格式和
类型 174
13.4.6 遍历响应报头 174
13.5 使用网页缓存优化网络程序 175
13.5.1 服务器端网页缓存的处理 175
13.5.2 最佳实践——缓存服务器端
复杂运算 177
13.5.3 客户端网页缓存的处理 178
思考与练习 180
第14章 使用HTML表单开发PHP交互式
应用程序 181
14.1 创建表单 182
14.1.1 HTML表单基本知识 182
14.1.2 使用样式表控制表单的
呈现 185
14.1.3 创建访客留言表单 186
14.2 接收表单数据 188
14.2.1 了解POST和GET方法 188
14.2.2 接收表单提交的数据——POST
和GET方法 189
14.2.3 易犯的错误——处理单名
多值表单 191
14.2.4 遍历表单变量 192
14.2.5 处理结果不良好的控件 192
14.2.6 其他处理表单的方法 193
14.2.7 关于图形提交按钮 194
14.3 使用PHP实现文件上传 194
14.4 关于register_globals配置 197
思考与练习 198
第15章 人机交互的状态维护——
Session、Cookie和状态
管理 199
15.1 理解Session和Cookie 200
15.1.1 什么是Cookie 200
15.1.2 什么是Session 201
15.1.3 了解Cookie的格式和内容 201
15.1.4 Session和Cookie的使用
环境 203
15.2 使用Cookie完成状态管理 203
15.2.1 怎样传送和使用Cookie 204
15.2.2 创建Cookie 205
15.2.3 访问Cookie 205
15.2.4 设置Cookie路径 206
15.2.5 易犯的错误——检查浏览器
是否接受Cookie 206
15.3 使用Session完成状态管理 208
15.3.1 激活PHP网页中的Session
支持 208
15.3.2 怎样传送和使用Session 209
15.3.3 创建和管理Session 212
15.3.4 启动和结束Session 214
15.3.5 Session的相关配置 215
15.3.6 管理Session的相关函数 218
15.3.7 使用URL参数传递
Session ID 222
15.4 其他维护状态的方法 222
15.5 易犯的错误 223
思考与练习 223
第16章 JavaScript、Ajax、jQuery和
PHP之间的交互 224
16.1 一个标准的Ajax应用所应
具备的步骤 225
16.1.1 编写PHP程序处理Ajax
请求和作出响应 226
16.1.2 编码混乱问题的解决 227
16.1.3 使用代理实现跨域请求 227
16.2 使用JSON编码 228
16.2.1 对JSON格式的字符串进行
解码 229
16.2.2 对变量进行JSON编码 229
16.2.3 处理解析错误 230
16.2.4 客户端数据处理 230
16.3 开发jQuery for PHP程序 231
第17章 使用HTML 5服务器推送技术和
Web Socket实现交互操作 233
17.1 服务器推送技术 234
17.1.1 使用Server-Sent Event入门 234
17.1.2 服务器要求 235
17.1.3 使用EventSource对象 236
17.2 Web Socket套接字连接 237
17.2.1 使用Web Socket入门 237
17.2.2 关于Web Socket通信协议 239
第4篇 PHP面向对象开发、模式和应用篇
第18章 面向对象编程(OOP)——创建
类和使用类 242
18.1 澄清——必须首先建立正确的
面向对象编程思想 243
18.1.1 对象的抽象 243
18.1.2 对象的使用 244
18.1.3 易犯的错误——不要让“一切
皆是对象”变成了“一切皆
是类” 244
18.1.4 面向对象程序设计的优点和
基本特征 245
18.1.5 对比——面向对象和结构化
程序设计的区别 245
18.2 创建类 246
18.2.1 创建一个PHP类 246
18.2.2 类的定义 247
18.2.3 易犯的错误——类与PHP
执行块 248
18.3 类的使用 249
18.3.1 怎样创建类的实例 249
18.3.2 访问对象属性 250
18.3.3 访问对象方法 250
18.3.4 访问常量、静态方法和访问
静态属性 250
18.3.5 在类体中使用关键字$this 250
18.3.6 使用可变变量访问成员 251
18.4 属性的初始化 252
18.4.1 内联方式初始化属性 253
18.4.2 实例化时初始化属性 253
18.5 定义方法 253
18.5.1 方法参数的类型提示 254
18.5.2 构造方法和析构方法 255
18.5.3 易犯的错误 257
18.6 对象成员的迭代 258
18.7 PHP?5和PHP?4在使用对象上的
不同 258
第19章 建立更可靠的OOP程序——类和
成员的访问控制 260
19.1 了解成员访问控制 261
19.2 public成员(公共成员) 262
19.3 private成员(私有成员) 262
19.4 protected成员
(受保护的成员) 263
第20章 重复使用类——继承和组合 265
20.1 类的继承 266
20.1.1 创建子类 266
20.1.2 使用基类的构造器方法 267
20.1.3 使用关键字parent访问
基类 267
20.1.4 关于多重继承的错误
认识 268
20.1.5 检测继承关系 269
20.1.6 创建子类时的注意事项 269
20.1.7 扩展内建PHP类 270
20.2 在类中使用final修饰符禁止
继承 270
20.3 类的组合 271
20.3.1 实现类的组合 271
20.3.2 组合的优点 272
20.3.3 了解is-a和has-a 272
20.3.4 关于聚合和组合 272
第21章 静态成员、静态类和枚举 273
21.1 为什么要定义静态成员和
静态类 274
21.2 创建静态成员 274
21.2.1 访问静态成员 275
21.2.2 易犯的错误——使用静态
成员时的注意事项 275
21.2.3 静态成员的特殊用途 276
21.2.4 静态成员和继承 276
21.2.5 后期静态绑定 277
21.3 静态类 278
21.4 枚举 279
21.4.1 创建枚举 279
21.4.2 使用枚举的优点 280
第22章 多态——重载和覆载 281
22.1 方法的重载 282
22.1.1 重载参数列表的数量 282
22.1.2 重载参数列表的数量和
类型 283
22.1.3 静态方法重载 284
22.2 重写方法 285
第23章 接口和抽象——错误最深重的
地方 288
23.1 创建和实现接口 289
23.1.1 接口的定义 289
23.1.2 接口的实现 289
23.1.3 常量的实现 290
23.1.4 在接口和实现接口的类中
使用默认参数值 290
23.1.5 接口的合并 291
23.2 创建抽象类 291
23.3 接口和抽象类的区别 292
23.3.1 用一句话来区分接口和
抽象类 293
23.3.2 唯一能使用抽象类的地方 293
第24章 类、接口、函数和常量的
组织——命名空间 296
24.1 为什么要使用命名空间——预防
冲突 297
24.2 创建命名空间 297
24.2.1 定义命名空间 298
24.2.2 使用命名空间实现合理的
分类管理 300
24.2.3 命名空间的命名 301
24.3 使用命名空间 301
24.3.1 引用命名空间 301
24.3.2 命名空间使用的优先策略 302
24.3.3 使用namespace关键字和
__NAMESPACE__常量 303
24.3.4 导入命名空间 303
24.3.5 名称解析规则 304
第25章 密封类和动态类 306
25.1 动态属性 307
25.1.1 使用魔术方法__get()和
__set() 307
25.1.2 使用魔术方法__isset()和
__unset() 307
25.2 动态方法 309
25.3 创建密封类 309
第26章 使用魔术方法 310
26.1 类的自动加载和重用 311
26.2 转换为字符串 311
26.2.1 __set_state()魔术方法 312
26.2.2 __invoke()魔术方法 313
26.3 序列化和逆序列化 314
26.3.1 执行序列化和逆序列化 314
26.3.2 自定义序列化和逆序列化 314
26.4 对象的克隆 316
26.4.1 浅表克隆 316
26.4.2 深度克隆 316
26.4.3 使用魔术方法__clone() 317
第27章 反射 319
27.1 反射要实现什么 320
27.2 反射API 320
27.3 用于实现反射的函数 327
第28章 PHP设计模式 330
28.1 单体模式 331
28.2 工厂模式 332
28.2.1 简单工厂模式 333
28.2.2 工厂方法模式 334
28.2.3 抽象工厂模式 335
28.3 建造者模式 336
28.4 观察者模式 337
28.5 装饰模式 338
第5篇 PHP和MySQL数据库应用集成篇
第29章 安装、配置和使用MySQL数据库
服务器 342
29.1 安装和配置MySQL数据库
服务器 343
29.2 使用MySQL数据库服务器 344
29.2.1 连接MySQL服务器 344
29.2.2 修改密码 345
29.2.3 用户账户管理 345
29.2.4 数据类型 346
29.2.5 数据库操作 348
29.2.6 MySQL数据备份与恢复 349
第30章 使用phpMyAdmin管理
MySQL 352
30.1 配置phpMyAdmin 353
30.2 创建数据库 355
30.3 设计数据库结构 355
30.4 录入数据 356
第31章 使用PDO接口访问数据库 357
31.1 配置PHP使用PDO 358
31.2 数据库连接和配置数据源 358
31.2.1 数据库连接 358
31.2.2 数据库连接驱动 359
31.3 基本数据库查询操作 360
31.3.1 查询和显示数据记录 360
31.3.2 遍历列出数据表的
内容 360
31.4 修改数据 361
31.4.1 插入数据记录 361
31.4.2 更新数据记录 362
31.4.3 删除数据记录 363
31.4.4 插入和显示数据库中的图片
(处理二进制数据) 364
31.5 操作数据库结构 366
31.6 在PHP中应用PDO的基本
步骤 366
31.6.1 创建连接 367
31.6.2 执行查询或更新 370
31.6.3 处理结果 371
31.6.4 关闭连接 371
31.7 其他常用数据库连接的连接
方式 372
31.7.1 连接到SQL Server和Sybase
数据库 372
31.7.2 连接到Firebird和Interbase
数据库 372
31.7.3 连接到IBM DB2数据库 372
31.7.4 连接到Oracle数据库 373
31.7.5 连接到ODBC或DB2
数据库 373
31.7.6 连接到PostgreSQL
数据库 373
31.7.7 连接到SQLite数据库 374
31.8 通过ODBC连接MySQL
数据库 374
第32章 数据库设计和SQL语法 377
32.1 数据库设计基本知识 378
32.1.1 关于数据库 378
32.1.2 设计数据库 379
32.2 SQL语法入门 381
32.2.1 语法基础知识 382
32.2.2 定义记录集的列 383
32.2.3 限制记录集中的记录 384
32.2.4 对记录集中的记录进行
排序 385
32.2.5 联接表 385
32.3 创建和使用SQL存储过程 389
32.3.1 使用命令行创建存储
过程 390
32.3.2 为存储过程定义参数 391
32.3.3 调用存储过程 391
32.3.4 为调用存储过程定义参数 392
32.4 SQL注入缺陷和参数化
查询 394
32.4.1 基本的SQL注入预防
措施 394
32.4.2 使用参数化查询预防SQL
注入 395
32.4.3 关于魔术引号和magic_quotes_
gpc导致的SQL注入 396
思考与练习 397
第33章 深入探究PDO 398
33.1 了解PDO编程模型 399
33.1.1 了解PDO类 399
33.1.2 了解PDOStatement类 399
33.1.3 了解PDOException类 400
33.2 使用预处理语句和参数化
查询 400
33.2.1 使用预处理 401
33.2.2 指定参数和实现参数化
查询 401
33.3 游标和数据提取 403
33.3.1 游标的类型 404
33.3.2 数据提取方法 404
33.3.3 数据提取方法和提取模式
的配合 406
33.3.4 关于元数据 413
33.4 关于PDO连接属性 414
33.4.1 字段名区分大小写 414
33.4.2 了解PDO持久连接 415
33.5 错误和错误处理 415
第34章 结果集分页实用模块 417
34.1 结果集分页的方式 418
34.2 结果集分页的技术原理 418
34.3 结果集分页的范例 419
34.4 使用LIMIT子句分页 422
第35章 使用MySQL数据库函数和
MySQLi扩展 426
35.1 配置MySQL数据库函数 427
35.1.1 MySQL函数运行时配置 427
35.1.2 MySQL函数资源类型 427
35.1.3 预定义常量 428
35.2 基本数据库查询操作 428
35.2.1 查询和显示数据记录 428
35.2.2 遍历列出数据库内容 429
35.3 修改数据 430
35.3.1 插入数据记录 430
35.3.2 更新数据记录 431
35.3.3 删除数据记录 431
35.3.4 插入和显示数据库中的图片
(二进制数据) 432
35.3.5 使用MySQL数据库函数操控
数据库的基本步骤 434
35.4 使用MySQLi扩展 437
35.4.1 MySQLi运行时配置 437
35.4.2 MySQLi基本的使用方法 438
35.4.3 使用MySQLi类 440
35.4.4 使用mysqli_stmt类 441
35.4.5 使用mysqli_result类 442
第6篇 PHP基础架构、扩展和框架应用篇
第36章 PHP网络应用程序基础
架构 444
36.1 PHP网络应用程序的三层
架构模型 445
36.2 从C/S架构到B/S架构 446
36.2.1 从三层架构到N层架构 448
36.2.2 PHP网页在三层架构中的
地位 448
第37章 PHP扩展——PECL和
PEAR 449
37.1 使用PHP扩展 450
37.2 安装和使用PEAR扩展 451
37.2.1 安装PEAR环境 451
37.2.2 管理PEAR扩展 452
37.2.3 使用扩展包 452
第38章 使用PHP发送和接收电子
邮件 453
38.1 安装和使用SMTP服务 454
38.1.1 安装SMTP服务 454
38.1.2 配置SMTP服务 455
38.1.3 配置Outlook使用本地SMTP
服务发送邮件 456
38.1.4 区分POP3和SMTP服务 457
38.2 创建发送邮件的PHP应用
程序 458
38.2.1 了解mail()函数 458
38.2.2 创建简单的邮件发送程序 459
38.2.3 SMTP服务和mail()函数的
工作原理 460
38.3 创建增强的邮件发送程序 460
38.3.1 安装和配置 461
38.3.2 使用远程SMTP服务 461
38.3.3 发送带附件的电子邮件 462
38.3.4 发送多媒体邮件 463
38.3.5 群发邮件 465
38.4 使用POP3方式收信 466
第39章 使用PHP操作文件系统 468
39.1 了解目录和文件的路径 469
39.2 获取目录和文件的信息 470
39.2.1 获取磁盘的总大小和可用
空间 470
39.2.2 获取目录和文件的属性
信息 470
39.2.3 遍历文件夹下的目录和
文件 471
39.3 处理目录 474
39.3.1 目录的创建、删除、重命名和
移动 474
39.3.2 删除目录树 475
39.3.3 处理当前网页所在目录 476
39.4 处理文件 476
39.4.1 文件的创建、删除、复制、
重命名和移动 476
39.4.2 向文件中添加数据 477
39.4.3 读取文件内容 479
39.4.4 文件下载 480
第40章 使用W3C DOM处理XML
文档 482
40.1 一切皆是节点——学习DOM的
首要认识 483
40.1.1 DOM API的节点类型 483
40.1.2 节点的层次关系 483
40.1.3 DOM基于节点的浏览 484
40.2 使用PHP DOM处理XML
文档 485
40.2.1 PHP DOM API 486
40.2.2 使用字符串创建一个新的
DOM文档对象 494
40.2.3 使用文件创建一个新的DOM
文档对象 495
40.2.4 使用版本号和编码创建一个空
的DOM文档对象 495
40.2.5 保存和写出一个DOM文档
对象 495
40.2.6 遍历节点树 496
40.2.7 使用XPath从XML文档中
提取数据 499
40.3 修改XML文档 499
40.3.1 添加新节点 499
40.3.2 为元素节点添加
新属性 500
40.3.3 通过克隆的方法创
建节点 501
40.3.4 修改XML文档中的节点、
内容和值 502
40.3.5 删除XML文档中的节点、
内容和值 503
第41章 使用SAX处理XML文档 504
41.1 什么是SAX 505
41.2 使用SAX解析XML的通用
步骤 507
41.2.1 出错代码和常量 511
41.2.2 SAX解析函数详解 512
第42章 使用Zend框架 518
42.1 安装和配置Zend框架 519
42.2 使用Zend框架 519
第7篇 PHP程序调试、优化和部署篇
第43章 处理程序异常——建立可靠的
应用程序 524
43.1 错误和异常情况 525
43.2 异常情况处理 526
43.2.1 使用try…catch语句 526
43.2.2 使用throw语句 527
43.2.3 何时使用异常捕捉 528
43.2.4 自定义捕捉异常的方法 528
43.2.5 自定义捕捉错误的方法 529
43.2.6 将出错信息写入日志 530
43.2.7 错误控制运算符 531
43.3 使用Exception处理异常错误
信息 531
43.4 条件catch语句 532
第44章 使用Zend Debugger调试PHP
程序代码——原理与范例 533
44.1 调试PHP的方法 534
44.1.1 使用出错信息 534
44.1.2 服务器日志 535
44.1.3 断点调试 535
44.2 配置PHP调试环境 535
44.2.1 安装和配置Zend Debugger 536
44.2.2 安装和配置Zend Studio 537
44.3 使用Zend Studio进行调试 538
44.3.1 调试操作 539
44.3.2 调试工具栏 540
44.3.3 查看变量 541
44.3.4 设置断点 541
44.3.5 监控变量 542
44.3.6 调用堆栈窗口 542
44.4 使用script调试工具范例
实战 543
44.4.1 定义一个用于调试的PHP
范例网页 543
44.4.2 调试实战 544
第45章 PHP事务和关键应用程序
开发 548
45.1 理解事务 549
45.1.1 事务的工作过程 549
45.1.2 事务的共同特点 549
45.2 在PHP应用程序中使用事务 550
45.2.1 在PHP网页中使用PDO自身
事务处理系统 551
45.2.2 使用数据库系统完成事务 552
第46章 PHP网络应用程序的安全 554
46.1 身份验证和授权 555
46.1.1 了解Apache提供的身份验证
功能 555
46.1.2 关于匿名访问站点 555
46.1.3 创建基本身份验证站点 555
46.1.4 摘要式身份验证 559
46.1.5 分级访问控制 562
46.1.6 使用表单的身份验证和基于
角色的授权系统 562
46.2 传输过程中的加密 562
46.2.1 加密的工作原理 563
46.2.2 安全证书的工作原理 564
46.2.3 使用隐私和安全证书 564
46.3 配置Apache支持SSL 564
46.3.1 安装OpenSSL 565
46.3.2 创建服务器证书和私钥 565
46.3.3 配置Apache和mod_ssl 567
46.3.4 信任自签名证书 569
46.3.5 创建CA 571
46.3.6 使用CA签名和颁发
证书 572
46.3.7 在客户端安装根证书 573
46.4 使用浏览器证书 574
46.4.1 使用浏览器证书的注意
事项 575
46.4.2 创建浏览器证书 575
46.4.3 安装浏览器证书 575
46.4.4 启用浏览器证书 576
46.4.5 使用客户证书映射 580
第47章 PHP网页的国际化、区域化和
多国语言包 582
47.1 了解网页字符编码 583
47.1.1 计算机文字字符编码
简介 583
47.1.2 文档字符集和选择字符
编码 585
47.1.3 在HTML文档中使用字符
引用 585
47.2 字符编码和PHP网页 586
47.2.1 指定网页字符编码 586
47.2.2 字符编码的优先级 587
47.2.3 乱码产生的根源和解决
方案 587
47.2.4 为PHP网页实际编码 588
47.2.5 创建多语言网站 588
47.3 区域化设置和PHP网页 590
47.3.1 国际化和区域化设置 590
47.3.2 区域化设置和字符集的
匹配 591
47.3.3 使用setlocale()函数设置
区域化 593
47.4 创建PHP网页实现国际化和
区域化 594
47.4.1 了解国际化和区域化的
相关函数 594
47.4.2 制作资源包 595
47.4.3 放置资源包 598
思考与练习 598
附录A 保留的PHP关键字 599
附录B 常用字符集速查表 600
附录C PHP支持的时区字符串列表 601
附录D php.ini核心配置选项说明 607
附录E 区域标识符对照表 612
附录F Linux+Apache+MySQL+ PHP
(LAMP)安装和配置 614
F.1 安装和配置Apache 614
F.2 安装和配置PHP 615
F.3 安装和配置MySQL 617
附录G 关于PHP?6的介绍 618
附录H 参考文献以及资料来源 619
参考网址 619
参考图书 620
参考规范及标准 621
· · · · · · (
收起)