第1章 php概述 1
1.1 历史 1
1.1.1 php 4 2
1.1.2 php 5 3
1.2 php的一般特性 3
1.2.1 实用性 3
1.2.2 强大功能 4
1.2.3 可选择性 4
1.2.4 成本 5
1.3 小结 5
第2章 安装配置apache和php 6
2.1 安装 6
2.1.1 获得发行包 6
2.1.2 安装过程 7
2.1.3 测试安装 11
2.1.4 定制unix构建 12
2.1.5 定制windows构建 12
2.1.6 常见错误 13
2.1.7 查看并下载文档 13
2.2 配置 13
2.2.1 管理php的配置指令 14
2.2.2 php的配置指令 15
2.3 小结 29
第3章 php基础 30
3.1 界定php代码 30
3.1.1 默认语法 30
3.1.2 短标记 31
3.1.3 脚本 31
3.1.4 asp风格 32
3.1.5 嵌入多个代码块 32
3.2 注释 32
3.2.1 单行c++语法 32
3.2.2 shell语法 32
3.2.3 多行c语法 33
3.3 输出 33
3.3.1 print() 33
3.3.2 echo() 34
3.3.3 printf() 34
3.3.4 sprintf() 35
3.4 数据类型 35
3.4.1 标量数据类型 35
3.4.2 复合数据类型 37
3.4.3 特殊数据类型 38
3.4.4 类型强制转换 38
3.4.5 类型自动转换 39
3.4.6 与类型有关的函数 40
3.4.7 类型标识符函数 40
3.5 标识符 41
3.6 变量 41
3.6.1 变量声明 42
3.6.2 变量作用域 43
3.6.3 php的超级全局变量 45
3.6.4 变量的变量 48
3.7 常量 49
3.8 表达式 49
3.8.1 操作数 50
3.8.2 操作符 50
3.9 字符串插入 54
3.9.1 双引号 55
3.9.2 单引号 55
3.9.3 heredoc 56
3.10 控制结构 56
3.10.1 执行控制语句 57
3.10.2 条件语句 57
3.10.3 循环语句 59
3.10.4 文件包含语句 63
3.10.5 require_once() 65
3.11 小结 65
第4章 函数 66
4.1 调用函数 66
4.2 创建函数 66
4.2.1 按值传递参数 67
4.2.2 按引用传递参数 68
4.2.3 默认参数值 68
4.2.4 可选参数 68
4.2.5 从函数返回值 69
4.2.6 嵌套函数 70
4.2.7 递归函数 70
4.2.8 变量函数 72
4.3 函数库 73
4.4 小结 74
第5章 数组 75
5.1 什么是数组 75
5.2 输出数组 76
5.3 创建数组 77
5.4 测试数组 79
5.5 增加和删除数组元素 79
5.6 定位数组元素 81
5.7 遍历数组 82
5.8 确定数组大小和唯一性 85
5.9 数组排序 86
5.10 合并、拆分、接合和分解数组 91
5.11 其他有用的数组函数 95
5.12 小结 96
第6章 面向对象的php 97
6.1 oop的好处 97
6.1.1 封装 97
6.1.2 继承 98
6.1.3 多态 98
6.2 关键的oop概念 99
6.2.1 类 99
6.2.2 对象 99
6.2.3 字段 100
6.2.4 属性 102
6.2.5 常量 104
6.2.6 方法 105
6.3 类型提示 108
6.4 构造函数和析构函数 108
6.4.1 构造函数 108
6.4.2 析构函数 110
6.5 静态类成员 111
6.6 instanceof关键字 112
6.7 辅助函数 112
6.8 自动加载对象 114
6.9 小结 114
第7章 高级oop特性 115
7.1 php不支持的高级oop特性 115
7.2 对象克隆 116
7.2.1 克隆示例 116
7.2.2 __clone()方法 117
7.3 继承 118
7.3.1 类继承 118
7.3.2 继承和构造函数 120
7.4 接口 121
7.4.1 实现一个接口 122
7.4.2 实现多个接口 123
7.5 抽象类 124
7.6 反射 124
7.6.1 编写reflectionclass类 125
7.6.2 编写reflectionmethod类 127
7.6.3 编写reflectionparameter类 128
7.6.4 编写reflectionproperty类 129
7.6.5 反射的其他用途 130
7.7 小结 130
第8章 错误和异常处理 131
8.1 配置指令 131
8.2 错误日志 134
8.3 异常处理 135
8.3.1 为什么异常处理很方便 136
8.3.2 php的异常处理实现 137
8.4 小结 140
第9章 字符串和正则表达式 141
9.1 复杂(大括号)偏移语法 141
9.2 正则表达式 142
9.2.1 正则表达式语法(posix) 142
9.2.2 php的正则表达式函数
(posix扩展) 144
9.2.3 正则表达式语法(perl风格) 146
9.3 其他字符串函数 151
9.3.1 确定字符串长度 152
9.3.2 比较两个字符串 152
9.3.3 处理字符串大小写 154
9.3.4 字符串与html相互转换 155
9.3.5 正则表达式函数的替代函数 159
9.3.6 填充和剔除字符串 164
9.3.7 字符和单词计数 165
9.4 使用pear:validate_us 167
9.4.1 安装validate_us 167
9.4.2 使用validate_us 168
9.5 小结 168
第10章 处理文件和操作系统 169
10.1 了解文件和目录 169
10.1.1 解析目录路径 169
10.1.2 文件类型和链接 171
10.1.3 计算文件、目录和磁盘大小 173
10.1.4 访问和修改时间 175
10.2 文件所有权和权限 176
10.3 文件i/o 178
10.3.1 资源的概念 178
10.3.2 换行 178
10.3.3 文件末尾 178
10.3.4 打开和关闭文件 179
10.3.5 读取文件 180
10.3.6 移动文件指针 184
10.3.7 写入文件 184
10.3.8 读取目录内容 185
10.4 执行shell命令 186
10.5 系统级程序执行 187
10.5.1 清理输入 187
10.5.2 php的程序执行函数 188
10.6 小结 190
第11章 pear 191
11.1 流行的pear包 191
11.2 安装和更新pear 193
11.2.1 安装pear 193
11.2.2 pear和isp公司 194
11.2.3 更新pear 194
11.3 使用pear包管理器 194
11.3.1 查看安装的包 195
11.3.2 了解安装包的更多信息 195
11.3.3 安装pear包 196
11.3.4 使用pear包 197
11.3.5 升级pear包 198
11.3.6 卸载pear包 198
11.3.7 降级pear包 199
11.4 小结 199
第12章 日期和时间 200
12.1 unix时间戳 200
12.2 php的日期和时间库 200
12.3 日期函数 206
12.3.1 显示本地化的日期和时间 206
12.3.2 显示网页的最新修改日期 209
12.3.3 确定当前月份中的天数 209
12.3.4 计算当前日期后x天的日期 209
12.3.5 创建日历 210
12.4 php 5.1 213
12.4.1 date基础 213
12.4.2 date构造函数 213
12.4.3 访问方法和修改方法 214
12.4.4 验证函数 216
12.4.5 处理方法 216
12.5 小结 222
第13章 表单和导航提示 223
13.1 php和web表单 223
13.1.1 简单示例 224
13.1.2 向函数传递表单数据 225
13.1.3 处理多值表单组件 226
13.1.4 用php生成表单 227
13.1.5 自动选择表单数据 228
13.1.6 php、web表单和
javascript 229
13.2 导航提示 231
13.2.1 用户友好的url 231
13.2.2 “面包屑型”轨迹 233
13.2.3 创建定制错误处理函数 237
13.3 小结 238
第14章 身份认证 239
14.1 http认证概念 239
14.2 php认证 240
14.2.1 认证变量 240
14.2.2 认证方法 241
14.3 用户登录管理 248
14.3.1 密码指派 248
14.3.2 使用cracklib库测试密码
易猜性 250
14.3.3 一次性url和密码恢复 251
第15章 处理文件上传 254
15.1 通过http协议上传文件 254
15.2 通过php处理上传 255
15.2.1 php的文件上传/资源指令 255
15.2.2 $_files数组 256
15.2.3 php的文件上传函数 256
15.2.4 上传错误消息 258
15.2.5 文件上传示例 258
15.3 利用pear:http_upload 261
15.3.1 安装http_upload 261
15.3.2 了解关于上传文件的更多
信息 262
15.3.3 将上传的文件移动到最终
目标 263
15.3.4 上传多个文件 263
15.4 小结 264
第16章 网络 265
16.1 dns、服务器和服务 265
16.1.1 dns 265
16.1.2 服务 268
16.1.3 建立套接字连接 269
16.2 邮件 271
16.2.1 配置指令 271
16.2.2 发送纯文本电子邮件 272
16.2.3 使用额外的信息首部发送
电子邮件 272
16.2.4 将电子邮件发送给多个
接收者 273
16.2.5 发送html格式的电子邮件 273
16.2.6 发送附件 274
16.3 imap、pop3和nntp 275
16.3.1 需求 276
16.3.2 建立和关闭连接 276
16.3.3 了解更多关于邮箱和邮件
的信息 277
16.3.4 获取邮件 280
16.3.5 写邮件 286
16.3.6 发送邮件 286
16.3.7 邮箱管理 287
16.3.8 邮件管理 288
16.4 流 288
16.4.1 流包装器和上下文 289
16.4.2 流过滤器 290
16.5 常见网络任务 291
16.5.1 连接一台服务器 291
16.5.2 端口扫描器 292
16.5.3 子网转换器 293
16.5.4 测试用户带宽 294
16.6 小结 295
第17章 php和ldap 296
17.1 ldap介绍 297
17.2 在php中使用ldap 297
17.2.1 连接到ldap服务器 297
17.2.2 绑定到ldap服务器 298
17.2.3 关闭ldap服务器连接 299
17.2.4 获取ldap数据 299
17.2.5 处理项值 301
17.2.6 统计所获取的项 302
17.2.7 获取属性 302
17.2.8 排序和比较ldap项 305
17.2.9 处理项 306
17.2.10 回收内存 308
17.2.11 插入ldap数据 309
17.2.12 更新ldap数据 309
17.2.13 删除ldap数据 310
17.2.14 配置函数 311
17.2.15 字符编码 312
17.2.16 处理区分名 312
17.2.17 错误处理 313
17.3 小结 314
第18章 会话处理器 315
18.1 什么是会话处理 315
18.1.1 cookie 315
18.1.2 url重写 316
18.1.3 会话处理过程 316
18.2 配置指令 317
18.3 关键概念 320
18.3.1 开始会话 320
18.3.2 销毁会话 321
18.3.3 获取和设置会话id 321
18.3.4 创建和删除会话变量 321
18.3.5 编码和解码会话数据 322
18.4 实际的会话处理示例 324
18.4.1 自动登录 324
18.4.2 最近浏览的文档索引 325
18.5 创建定制会话处理器 327
18.5.1 将定制会话函数加入到php
逻辑 327
18.5.2 基于mysql的定制会话
处理器 328
18.6 小结 330
第19章 用smarty模板化 331
19.1 什么是模板化引擎 331
19.2 smarty介绍 333
19.3 安装smarty 333
19.4 使用smarty 334
19.5 smarty的表现逻辑 336
19.5.1 注释 336
19.5.2 变量修饰符 336
19.5.3 控制结构 339
19.5.4 语句 342
19.6 创建配置文件 344
19.6.1 config_load 345
19.6.2 引用配置变量 345
19.7 结合smarty使用css 346
19.8 缓存 347
19.8.1 处理缓存生命期 347
19.8.2 通过is_cached()消除处理
开销 348
19.8.3 为每个模板创建多个缓存 348
19.8.4 关于缓存的结束语 349
19.9 小结 350
第20章 web服务 351
20.1 为什么使用web服务 352
20.2 真正简单聚合 353
20.2.1 rss语法 355
20.2.2 magpierss 356
20.3 simplexml 361
20.3.1 simplexml函数 362
20.3.2 simplexml方法 363
20.4 soap 365
20.4.1 nusoap 366
20.4.2 php 5的soap扩展 374
20.5 使用php web服务和c#客户 381
20.6 小结 383
第21章 安全php编程 384
21.1 安全地配置php 384
21.1.1 安全模式 385
21.1.2 其他与安全有关的配置参数 386
21.2 隐藏配置细节 388
21.3 隐藏敏感数据 389
21.3.1 注意文档根目录 390
21.3.2 拒绝访问某些文件扩展名 390
21.4 清理用户数据 390
21.4.1 文件删除 390
21.4.2 跨网站脚本 391
21.4.3 清理用户输入:解决方案 392
21.5 数据加密 394
21.5.1 php的加密函数 394
21.5.2 mhash 395
21.5.3 mcrypt 396
21.6 小结 397
第22章 sqlite 398
22.1 sqlite介绍 398
22.1.1 安装sqlite 398
22.1.2 使用sqlite命令行界面 399
22.2 php的sqlite库 400
22.2.1 sqlite指令 400
22.2.2 打开连接 400
22.2.3 在内存中创建表 401
22.2.4 关闭连接 401
22.2.5 查询数据库 402
22.2.6 解析结果集 403
22.2.7 获取结果集细节 405
22.2.8 操作结果集指针 406
22.2.9 了解表模式的更多信息 408
22.2.10 操作二进制数据 408
22.2.11 创建和覆盖sqlite函数 409
22.2.12 创建聚集函数 410
22.3 小结 411
第23章 pdo介绍 412
23.1 为什么还要另一种数据库抽象层 413
23.2 使用pdo 413
23.2.1 安装pdo 414
23.2.2 pdo的数据库支持 414
23.2.3 连接到数据库服务器并选择
数据库 415
23.2.4 存取属性 416
23.2.5 错误处理 417
23.2.6 查询执行 417
23.2.7 准备语句 418
23.2.8 获取数据 421
23.2.9 设置绑定列 423
23.2.10 事务 424
23.3 小结 425
第24章 mysql介绍 426
24.1 mysql为什么如此流行 426
24.1.1 灵活性 426
24.1.2 强大功能 427
24.1.3 灵活的许可选择 428
24.1.4 超级活跃的用户群体 429
24.2 mysql 4 429
24.3 mysql 5 430
24.4 著名的mysql用户 430
24.4.1 craigslist 430
24.4.2 雅虎财经 431
24.4.3 维基百科 431
24.5 小结 431
第25章 安装和配置mysql 432
25.1 php和mysql许可问题 432
25.1.1 linux 433
25.1.2 windows 433
25.2 下载mysql 433
25.3 安装mysql 434
25.3.1 linux 434
25.3.2 windows 437
25.4 设置mysql管理员密码 439
25.5 启动和停止mysql 439
25.5.1 手工控制守护进程 439
25.5.2 自动启动和停止mysql 441
25.6 配置和优化mysql 442
25.6.1 mysqld_safe 443
25.6.2 配置和优化参数 443
25.6.3 my.cnf文件 446
25.7 小结 448
第26章 众多mysql客户端 449
26.1 标准客户端选项 449
26.2 连接选项 450
26.3 一般选项 450
26.4 mysql 451
26.4.1 关键mysql选项 451
26.4.2 以交互模式使用mysql 452
26.4.3 查看配置变量和系统状态 454
26.4.4 以批处理模式使用mysql 455
26.4.5 有用的mysql提示 456
26.5 mysqladmin 458
26.6 其他实用工具 459
26.6.1 mysqldump 459
26.6.2 mysqlshow 459
26.6.3 mysqlhotcopy 460
26.6.4 mysqlimport 460
26.6.5 myisamchk 461
26.6.6 mysqlcheck 461
26.7 第三方客户端程序 462
26.7.1 mysql管理器 462
26.7.2 phpmyadmin 463
26.7.3 mysql查询浏览器 464
26.7.4 navicat 465
26.8 小结 466
第27章 mysql存储引擎和数据类型 467
27.1 存储引擎 467
27.1.1 innodb 468
27.1.2 myisam 468
27.1.3 memory 470
27.1.4 merge 471
27.1.5 bdb 471
27.1.6 federated 471
27.1.7 archive 472
27.1.8 csv 473
27.1.9 example 473
27.1.10 blackhole 473
27.1.11 存储引擎faq 473
27.2 数据类型和属性 475
27.2.1 数据类型 475
27.2.2 数据类型属性 479
27.3 操作数据库和表 481
27.3.1 操作数据库 481
27.3.2 操作表 483
27.3.3 修改表结构 485
27.3.4 information_schema 485
27.4 小结 487
第28章 保护mysql的安全 488
28.1 首先应当做什么 488
28.2 保护mysqld守护进程 489
28.3 mysql访问权限系统 489
28.3.1 权限系统的工作方式 490
28.3.2 访问信息存储在哪里 491
28.4 用户和权限管理 498
28.4.1 create user 498
28.4.2 drop user 499
28.4.3 rename user 499
28.4.4 grant和revoke命令 499
28.4.5 查看权限 503
28.5 限制用户资源 503
28.6 保护mysql连接 504
28.6.1 授权选项 504
28.6.2 ssl选项 505
28.6.3 启动启用ssl的mysql
服务器 506
28.6.4 使用启用ssl的客户端进行
连接 506
28.6.5 在my.cnf文件中存储ssl
选项 506
28.7 小结 507
第29章 php的mysql扩展 508
29.1 预备工作 508
29.1.1 在linux中启用mysql扩展 508
29.1.2 在windows中启用mysql
扩展 508
29.1.3 用户权限 509
29.1.4 示例数据 509
29.2 php的mysql命令 509
29.2.1 建立和关闭连接 509
29.2.2 在单独的文件中存储连接
信息 511
29.2.3 保护连接信息 511
29.3 选择数据库 512
29.4 查询mysql 512
29.5 获取和显示数据 513
29.6 插入数据 516
29.7 修改数据 517
29.8 删除数据 519
29.9 所选择的记录和受影响的记录 520
29.10 获取数据库和表的信息 521
29.11 获取字段信息 523
29.11.1 查看表属性 526
29.11.2 获取错误信息 527
29.12 辅助函数 528
29.13 小结 530
第30章 php的mysqli扩展 531
30.1 预备工作 532
30.1.1 在unix中启用mysqli
扩展 532
30.1.2 在windows中启用mysqli
扩展 532
30.1.3 示例数据 532
30.2 使用mysqli扩展 532
30.2.1 连接mysql服务器 532
30.2.2 连接错误报告 533
30.2.3 选择一个mysql数据库 535
30.2.4 关闭mysql连接 536
30.3 查询 536
30.3.1 查询执行 536
30.3.2 回收查询内存 537
30.3.3 准备结果集 538
30.3.4 解析结果 539
30.3.5 多个查询 542
30.3.6 准备语句 543
30.4 数据库事务 548
30.5 小结 549
第31章 存储例程 550
31.1 应当使用存储例程吗 550
31.1.1 存储例程的优点 550
31.1.2 存储例程的缺点 551
31.2 mysql如何实现存储例程 551
31.2.1 存储例程权限表 551
31.2.2 创建存储例程 553
31.2.3 声明和设置变量 554
31.2.4 执行存储例程 555
31.2.5 多语句存储例程 556
31.2.6 从另一个例程中调用例程 562
31.2.7 修改存储例程 563
31.2.8 删除存储例程 563
31.2.9 查看例程状态 563
31.2.10 查看例程的创建语法 564
31.2.11 条件和处理器 564
31.3 将例程集成到web应用程序 565
31.3.1 创建员工奖金界面 565
31.3.2 获取多条记录 566
31.4 小结 566
第32章 mysql触发器 567
32.1 介绍触发器 567
32.1.1 为什么使用触发器 567
32.1.2 在事件前采取行动 568
32.1.3 在事件后采取行动 568
32.1.4 前触发器和后触发器 569
32.2 mysql对触发器的支持 569
32.2.1 创建触发器 570
32.2.2 查看现有的触发器 571
32.2.3 修改触发器 572
32.2.4 删除触发器 572
32.2.5 级联触发器 573
32.3 将触发器集成到web应用程序 574
32.4 小结 575
第33章 视图 576
33.1 视图概述 576
33.2 mysql对视图的支持 577
33.2.1 创建和执行视图 577
33.2.2 查看视图信息 581
33.2.3 修改视图 582
33.2.4 删除视图 583
33.2.5 更新视图 583
33.3 将视图结合到web应用程序中 583
33.4 小结 585
第34章 实用数据库查询 586
34.1 示例数据 586
34.2 用pear创建表格输出 587
34.2.1 安装html_table 587
34.2.2 创建一个简单表 587
34.2.3 创建更可读的行输出 589
34.2.4 根据数据库数据创建表格 589
34.2.5 一般化输出过程 591
34.3 排序输出 593
34.4 创建分页输出 594
34.5 列出页码 597
34.6 子查询 598
34.6.1 用子查询完成比较 599
34.6.2 用子查询确定存在性 599
34.6.3 用子查询维护数据库 600
34.6.4 在php中使用子查询 601
34.7 游标 601
34.7.1 游标基础 601
34.7.2 创建游标 602
34.7.3 打开游标 602
34.7.4 使用游标 602
34.7.5 关闭游标 603
34.7.6 在php中使用游标 604
34.8 小结 604
第35章 索引和搜索 605
35.1 数据库索引 605
35.1.1 主键索引 605
35.1.2 唯一索引 606
35.1.3 常规索引 607
35.1.4 全文索引 608
35.1.5 索引最佳实践 611
35.2 基于表单的搜索 611
35.2.1 执行简单搜索 612
35.2.2 扩展搜索功能 613
35.2.3 执行全文搜索 614
35.3 小结 615
第36章 事务 616
36.1 什么是事务 616
36.2 mysql的事务功能 616
36.2.1 系统需求 617
36.2.2 表创建 617
36.2.3 innodb配置参数 618
36.3 示例项目 619
36.3.1 示例数据 620
36.3.2 执行示例事务 620
36.3.3 备份和恢复innodb表 622
36.3.4 用法提示 622
36.4 用php构建事务应用程序 622
36.5 小结 624
第37章 导入和导出数据 625
37.1 示例表 625
37.2 获得合适的媒介 625
37.3 导出数据 626
37.4 导入数据 628
37.4.1 利用load data infile导入
数据 628
37.4.2 用mysqlimport导入 631
37.4.3 用php加载表数据 633
37.5 小结 634
索引
· · · · · · (
收起)
《PHP与MySQL 5程序设计》(第2版)是久负盛名的经典著作,以涵盖全面详实而著称,对主题的选取和组织从实用出发,在讲述知识之外还加入了作者自己的应用经验,并提供了密集的实战代码示例,充分体现了作者深厚的开发功力。书中对PHP的介绍是迄今为止最为全面的,除了基础知识外,还强调了PHP的面向对象特性、错误和异常处理、安全编程等方面,并讲述了其他图书很少涉及而实践中却非常重要的日期与时间、正则表达式、文件与操作系统、文件上传、PEAR库、Smarty模板、SQLite、PDO等技术。而对MySQL的阐述则围绕动态Web站点的开发展开,透彻而又精到。
最好的编程图书应该不是纯粹地讲述理论,而是要切合实际。如果你希望获得PHP编程语言和MySQL数据库服务器的实践经验,对它们有全面的了解,并且想知道如何结合这些卓越的技术创建数据库驱动的动态Web应用程序,那么《PHP与MySQL 5程序设计》(第2版)正合你所需。在《PHP与MySQL 5程序设计》(第2版)第一版出版后的18个月中,PHP和MySQL社区依旧持续“狂热”地工作着,使得这两项卓越技术又有了显著的发展。因此,这一版增加了很多新内容,篇幅也增加了100多页。