第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