《PHP与MySQL 5程式设计》是2007年人民邮电出版社出版的图书,作者是W.Jason Gilmore。
基本介绍
- 书名:PHP与MySQL 5程式设计
- 作者:W.Jason Gilmore
- 译者:朱涛江
- ISBN:9787115155092
- 页数:634
- 定价:79
- 出版社:人民邮电出版社
- 出版时间:2007年01月
- 丛书:图灵程式设计丛书
内容介绍
本书全面介绍PHP脚本语言和MySOL资料库这两种目前最流行的开源软体,主要内容包括PHP和MySQL基本概念、PHP扩展与套用库、日期和时间功能、PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、解发器和视图等。本书实用性强,帮助读者学习PHP程式语言和MySQL资料库伺服器的最佳实践,了解如何结合这些卓越的技术创建资料库驱动的动态Web应用程式。 本书适合于Web开发的新手阅读,也适合作为各层次PHP和MySQL开发人员的参考书。
本书是久负盛名的经典着作,以涵盖全面详实而着称,对主题的选取和组织从实用出发,在讲述知识之外还加入了作者自己的套用经验,并提供了密集的实战代码示例,充分体现了作者深厚的开发功力。书中对PHP的介绍是迄今为止最为全面的.
目录
第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
索引
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
索引