PHP从入门到精通（第2版）

2011年清华大学出版社出版的图书
《PHP从入门到精通（第2版）》是2011年11月清华大学出版社出版的图书，作者是陈营辉等。
内容简介
本书由浅入深、循序渐进地向读者介绍了Web服务器原理、Web应用程序技术和PHP 5的知识点。每一章在讲解了PHP 5的知识点后，都配有具体的实例，带领读者一步步走进PHP 5的殿堂。
本书共分为六篇26章。从Web服务器基本原理开始，首先讲解PHP应用开发环境的安装与配置、PHP 5语言的编程基础知识及PHP 5面向对象的知识，然后介绍PHP的相关应用，包括PHP操作文件系统、与表单的交互等，还介绍了PHP 5与数据库交互操作知识及PHP 5的一些高级应用，最后通过3个实例详细讲解了PHP 5在实际开发项目中的应用。
图书目录
第一篇 概述篇
第1章 动态网站开发技术PHP 2
1.1 PHP与网站简介 2
1.1.1 网站的构成 2
1.1.2 静态网站 3
1.1.3 动态网站 4
1.2 常见动态网站技术 4
1.2.1 ASP/ASP.NET 5
1.2.2 JSP/JAVA Web 5
1.2.3 PHP 5
1.3 HTML快速上手 6
1.3.1 HTML网页结构 6
1.3.2 HTML元素与标签 7
1.4 小结 11
1.5 习题 11
第2章 PHP环境的安装与配置 12
2.1 PHP环境安装 12
2.1.1 安装Apache服务器 12
2.1.2 安装PHP 14
2.1.3 PHP配置文件php.ini简介 15
2.1.4 查看配置信息 16
2.2 整合套件 17
2.2.1 XAMPP简介 17
2.2.2 WAMP简介 18
2.2.3 Vertrigo Server简介 19
2.2.4 其他套件 19
2.3 开发工具 20
2.3.1 EditPlus 20
2.3.2 NotePad++ 21
2.3.3 Eclipse+PDT 21
2.3.4 ZendStudio for Eclipse 22
2.3.5 其他开发工具 22
2.4 第一个PHP程序——
Hello,World! 23
2.5 小结 24
2.6 习题 24
第二篇 语法篇
第3章 基础语法 26
3.1 数据类型 26
3.1.1 标量数据类型 26
3.1.2 复合数据类型 30
3.1.3 特殊数据类型 30
3.1.4 数据类型的获取 31
3.2 数据类型的转换 31
3.2.1 转换为布尔型 32
3.2.2 转换为整型 32
3.2.3 转换为浮点型 33
3.2.4 转换为字符串型 34
3.2.5 转换为数组型 35
3.2.6 转换为对象和资源 36
3.3 常量与变量 36
3.3.1 常量 36
3.3.2 系统常量 37
3.3.3 变量 38
3.3.4 变量的作用域 39
3.3.5 可变变量 41
3.4 运算符 41
3.4.1 赋值运算符 41
3.4.2 算术运算符 42
3.4.3 字符串运算符 43
3.4.4 比较运算符 43
3.4.5 逻辑运算符 44
3.4.6 位运算符 45
3.4.7 其他运算符 45
3.4.8 运算符的优先级 45
3.5 表达式 46
3.5.1 表达式的分类 46
3.5.2 赋值运算表达式 47
3.5.3 算术运算表达式 47
3.5.4 三元表达式 48
3.5.5 其他表达式 48
3.6 本章实例 48
3.7 小结 50
3.8 习题 50
第4章 流程控制 51
4.1 流程控制概述 51
4.2 条件控制语句 51
4.2.1 if控制语句 51
4.2.2 switch分支语句 55
4.3 循环控制语句 56
4.3.1 while循环语句 56
4.3.2 do-while循环语句 57
4.3.3 for循环语句 58
4.4 跳转语句 59
4.4.1 break跳转语句 59
4.4.2 continue跳转语句 59
4.4.3 return跳转语句 60
4.5 文件包含 60
4.5.1 使用inlcude和include_once
包含文件 60
4.5.2 使用require和require_once
包含文件 63
4.6 本章实例 64
4.7 小结 65
4.8 习题 65
第5章 函数及操作 67
5.1 函数的调用与定义 67
5.1.1 函数的调用 67
5.1.2 函数的定义 68
5.1.3 函数间传递参数 69
5.2 引用 70
5.2.1 引用的定义 71
5.2.2 对函数、变量的引用 71
5.2.3 引用的释放 73
5.3 PHP常用函数 73
5.3.1 日期时间函数 73
5.3.2 数学函数 80
5.3.3 其他常用函数 81
5.4 本章实例 82
5.5 小结 83
5.6 习题 83
第6章 数组及操作 84
6.1 概述 84
6.1.1 一维数组 84
6.1.2 多维数组 84
6.2 数组的常用操作 85
6.2.1 数组的创建 85
6.2.2 数组的调用与删除 86
6.2.3 数组的更新 87
6.2.4 数组的遍历 88
6.3 数组的查找 89
6.3.1 顺序查找 89
6.3.2 二分法查找 89
6.3.3 array_search查找 90
6.4 数组的排序 91
6.4.1 递增排序 91
6.4.2 递减排序 92
6.4.3 数组排序 93
6.5 数组的拆分与合并 94
6.5.1 数组的拆分 94
6.5.2 数组的合并 96
6.6 全局数组 98
6.6.1 $_SERVER[ ]全局数组 98
6.6.2 $_ENV[ ]全局数组 99
6.6.3 $_GET[ ]和$_POST[ ]全局数组 99
6.6.4 $_FILES[ ]全局数组 99
6.6.5 $_COOKIE[ ]和$_SESSION[ ]
全局数组 99
6.6.6 $_REQUEST[ ]全局数组 99
6.7 本章实例 100
6.8 小结 101
6.9 习题 101
第7章 字符操作与正则表达式 102
7.1 理解字符类型 102
7.2 字符的显示与格式化 102
7.2.1 字符的显示 103
7.2.2 字符的格式化 103
7.3 常用操作 106
7.3.1 字符串重复操作——
str_repeat函数 106
7.3.2 字符串查找操作——
strstr函数 107
7.3.3 字符串替换操作——
str_replace函数 107
7.3.4 字符串分解操作——
str_split函数 109
7.3.5 字符串分解成单词——
str_word_count函数 109
7.3.6 字符串的长度——strlen函数 110
7.3.7 获取子字符串——substr函数 111
7.4 正则表达式 111
7.4.1 正则表达式简介 111
7.4.2 常见的正则表达式元字符 112
7.5 正则表达式的常用操作 113
7.5.1 进行正则表达式的匹配——
preg_match函数 113
7.5.2 进行全局正则表达式的匹配——
preg_match_all函数 114
7.5.3 获得与模式匹配的数组单元——
preg_grep函数 116
7.5.4 转义正则表达式字符——
preg_quote函数 117
7.5.5 执行正则表达式的搜索与替换
——preg_replace函数 118
7.5.6 通过回调函数执行正则表达式的
搜索与替换——preg_replace_
callback函数 119
7.5.7 用正则表达式进行字符串分割
——preg_split函数 120
7.6 本章实例 122
7.7 小结 124
7.8 习题 124
第8章 错误、异常处理与调试 125
8.1 PHP错误类型 125
8.1.1 语法错误 125
8.1.2 语义错误 126
8.1.3 逻辑错误 126
8.1.4 注释错误 127
8.1.5 运行错误 127
8.2 错误处理 128
8.2.1 错误级别 128
8.2.2 php.ini对错误处理的设置 128
8.2.3 错误处理 129
8.3 PHP异常 132
8.3.1 异常处理原理 132
8.3.2 异常处理 132
8.3.3 扩展的异常处理类 136
8.3.4 异常的传递与重掷 137
8.4 PHP程序的调试 138
8.4.1 打开错误报告 138
8.4.2 使用ECHO进行调试 139
8.4.3 使用DIE进行调试 140
8.5 使用ZendStudio进行调试 140
8.5.1 使用Eclipse开发PHP的优点 140
8.5.2 Eclipse和ZendStudio的安装 141
8.5.3 Zend Debugger的安装 142
8.5.4 使用ZendStudio进行调试 143
8.6 本章实例 144
8.7 小结 145
8.8 习题 145
第9章 面向对象的PHP 146
9.1 概述 146
9.1.1 什么是面向对象 146
9.1.2 面向对象的特征 147
9.2 类和对象 147
9.2.1 类的结构及声明 147
9.2.2 属性和方法的定义 148
9.2.3 使用构造函数 149
9.2.4 使用析构函数 149
9.2.5 类的实例化 150
9.2.6 类的继承 151
9.3 类的常量 152
9.4 访问方法和属性 153
9.4.1 访问修饰符 153
9.4.2 静态属性 155
9.4.3 静态方法 156
9.4.4 魔术方法 156
9.5 本章实例 159
9.6 小结 160
9.7 习题 160
第10章 继承、多态与接口 161
10.1 继承 161
10.1.1 什么是继承 161
10.1.2 PHP中实现继承的方法 161
10.1.3 重载 162
10.1.4 用final关键字对继承和重载
进行限制 164
10.2 多态 165
10.2.1 什么是多态 165
10.2.2 多态的应用设计 165
10.3 接口 167
10.3.1 接口的概念 167
10.3.2 接口的实现 168
10.3.3 接口的继承 169
10.4 小结 169
10.5 习题 170
第三篇 应用篇
第11章 文件系统与操作 172
11.1 目录操作 172
11.1.1 打开目录 172
11.1.2 关闭目录 173
11.1.3 读取目录 173
11.1.4 建立目录 174
11.1.5 删除目录 175
11.1.6 改变目录 176
11.2 文件操作 176
11.2.1 打开文件 177
11.2.2 关闭文件 178
11.2.3 读取文件 179
11.2.4 写入文件 181
11.2.5 删除文件 182
11.2.6 复制文件 182
11.2.7 移动文件和重命名文件 183
11.3 文件的上传与下载 184
11.3.1 开启上传功能 184
11.3.2 POST方法上传 184
11.3.3 同时上传多个文件 187
11.3.4 文件的下载 189
11.4 本章实例 189
11.5 小结 190
11.6 习题 190
第12章 PHP交互 191
12.1 表单数据的提交方法 191
12.1.1 GET方法 191
12.1.2 POST方法 191
12.1.3 表单提交方法的区别 192
12.2 获取表单数据 192
12.2.1 获取文本域的数据 192
12.2.2 获取单选按钮的数据 194
12.2.3 获取复选框的数据 195
12.2.4 获取下拉框或列表框的数据 196
12.3 常用表单数据的验证 198
12.3.1 用户名的验证 198
12.3.2 密码验证 199
12.3.3 日期验证 199
12.3.4 E-mail验证 200
12.4 URL编码与解码 200
12.4.1 编码urlencode函数 200
12.4.2 解码urldecode 201
12.5 本章实例 201
12.6 小结 202
12.7 习题 202
第13章 Cookie与Session 203
13.1 概述 203
13.1.1 Cookie 203
13.1.2 Session 204
13.2 Cookie操作 205
13.2.1 设置Cookie 206
13.2.2 访问Cookie 207
13.2.3 删除Cookie 207
13.2.4 Cookie全局数组 208
13.3 Cookie应用 208
13.3.1 登录页面 209
13.3.2 验证页面 209
13.3.3 欢迎页面 210
13.4 Session操作 211
13.4.1 Session使用 211
13.4.2 Session检测与注销 212
13.4.3 Session全局数组 214
13.5 Session应用 214
13.5.1 登录页面 214
13.5.2 验证页面 215
13.5.3 欢迎页面 215
13.5.4 注销页面 216
13.6 本章实例 216
13.7 小结 218
13.8 习题 218
第14章 PHP与AJAX 219
14.1 AJAX概述 219
14.1.1 什么是AJAX 219
14.1.2 工作原理 220
14.1.3 优点与缺点 220
14.2 使用AJAX 221
14.2.1 创建XMLHttpRequest对象 221
14.2.2 向服务器发送请求 223
14.2.3 处理服务器响应 225
14.3 使用POST方式的AJAX 227
14.3.1 POST方式 228
14.3.2 POST实例 228
14.4 第一个AJAX程序——
Hello,Ajax! 231
14.4.1 浏览器页面发送请求与
处理响应 231
14.4.2 服务器响应 232
14.5 本章实例 232
14.5.1 读取服务器文本文件 232
14.5.2 三级联动下拉框 234
14.6 小结 238
14.7 习题 238
第15章 图像处理 239
15.1 图像库简介 239
15.1.1 打开GD库 239
15.1.2 GD库支持的图像格式 240
15.2 基本的图像处理 241
15.2.1 创建图像 241
15.2.2 设置颜色 242
15.2.3 生成图像与销毁图像 242
15.2.4 绘制点线 243
15.2.5 绘制并填充几何图形 244
15.2.6 输出文字 244
15.3 图像处理实例 245
15.3.1 生成验证码图片 245
15.3.2 生成缩略图 247
15.4 本章实例 249
15.5 小结 253
15.6 习题 253
第16章 邮件处理 254
16.1 PHP邮件发送配置 254
16.1.1 SMTP功能的配置 254
16.1.2 安装SMTP服务器 255
16.2 使用mail函数发送邮件 255
16.2.1 mail函数简介 255
16.2.2 发送HTML格式的邮件 257
16.2.3 发送带附件的邮件 258
16.3 本章实例 260
16.4 小结 264
16.5 习题 264
第四篇 数据库篇
第17章 MySQL数据库的安装与操作 266
17.1 SQL语言概述 266
17.2 MySQL的安装与配置 266
17.2.1 下载版本 266
17.2.2 安装和配置 267
17.3 MySQL的启动与停止 268
17.3.1 启动 268
17.3.2 停止 269
17.4 管理数据库 270
17.4.1 MySQL的登录与退出 270
17.4.2 创建数据库 270
17.4.3 删除数据库 271
17.4.4 选择数据库 272
17.4.5 备份与恢复 272
17.5 操作数据表 273
17.5.1 创建表 273
17.5.2 修改表 275
17.5.3 删除表 276
17.6 数据类型与视图 276
17.6.1 MySQL数据类型 276
17.6.2 视图 277
17.7 操作数据 279
17.7.1 查询语句 279
17.7.2 插入语句 281
17.7.3 更新语句 282
17.7.4 删除语句 283
17.8 使用phpMyAdmin管理MySQL数据库 283
17.8.1 phpMyAdmin概述 283
17.8.2 安装与配置 283
17.8.3 数据库操作 284
17.8.4 数据表操作 285
17.8.5 数据的增删改 286
17.8.6 数据的查询 288
17.8.7 数据的导入导出 288
17.9 小结 289
17.10 习题 289
第18章 PHP操作数据库 290
18.1 PHP操作MySQL数据库 290
18.1.1 连接MySQL数据库 290
18.1.2 断开与MySQL的连接 292
18.1.3 选择和使用MySQL数据库 292
18.1.4 执行MySQL指令 293
18.1.5 分析结果集 294
18.2 管理MySQL数据库中的数据 299
18.2.1 添加数据 299
18.2.2 更新数据 301
18.2.3 删除数据 304
18.3 获取数据库信息 306
18.3.1 获取数据库的信息 306
18.3.2 获取数据表的信息 307
18.3.3 获取数据表中列的信息 308
18.4 在PHP中操作SQL Server
数据库 310
18.4.1 连接和关闭SQL Server
数据库 311
18.4.2 执行SQL语句 312
18.4.3 获取结果集 313
18.5 在PHP中操作Access数据库 314
18.5.1 连接和关闭Access 314
18.5.2 执行SQL语句 315
18.5.3 获取结果集 315
18.6 本章实例 316
18.7 小结 320
18.8 习题 320
第19章 PHP与XML 321
19.1 XML简介 321
19.2 使用SimpleXML进行操作 322
19.2.1 创建SimpleXML对象 322
19.2.2 读取对象中的XML数据 323
19.2.3 XML数据的修改 325
19.2.4 XML数据的存储 326
19.3 动态创建XML文档 327
19.4 小结 328
19.5 习题 328
第五篇 扩展篇
第20章 MVC模式与PHP开发框架 330
20.1 MVC概述 330
20.1.1 何谓MVC 330
20.1.2 MVC的优点 331
20.1.3 MVC的不足 331
20.2 PHP框架——Zend Framework 332
20.2.1 Zend Framework的特性 332
20.2.2 Zend Framework的目录结构 333
20.2.3 Zend Framework的安装 333
20.2.4 引导文件index.php 335
20.2.5 页面组织 337
20.2.6 控制器类Controllers 337
20.2.7 视图文件 338
20.2.8 布局 338
20.3 小结 339
第21章 面向对象高级编程和设计
模式 340
21.1 重载 340
21.1.1 方法和属性的重载 340
21.1.2 使用数组语法访问的重载 342
21.2 设计模式 343
21.2.1 设计模式简介 344
21.2.2 单例模式 344
21.2.3 策略模式 345
21.2.4 工厂模式 345
21.2.5 观察者模式 347
21.2.6 适配器模式 348
21.3 小结 349
第22章 缓存与静态化 350
22.1 为何使用静态机制 350
22.2 缓存机制及其应用 352
22.2.1 缓存机制 352
22.2.2 缓存机制的应用 352
22.3 静态机制及实现 354
22.3.1 由模板生成静态页面 354
22.3.2 由数据库生成静态页面 355
22.4 小结 356
第 23章 PEAR与PECL 357
23.1 概述 357
23.1.1 PEAR简介 357
23.1.2 PECL简介 357
23.2 PEAR的安装与使用 358
23.2.1 PEAR的安装 358
23.2.2 查看已安装的包 360
23.2.3 查看PEAR包的详细信息 361
23.2.4 PEAR包的安装 361
22.2.5 PEAR包的升级 362
23.2.6 PEAR包的删除 362
23.2.7 PEAR包的使用 362
23.3 PECL扩展库 364
23.3.1 下载安装PECL扩展库 364
23.3.2 使用PEAR编译共享PECL
扩展库 366
23.4 小结 366
第六篇 实例篇
第24章 留言板 368
24.1 留言板简介 368
24.2 数据库设计 368
24.3 项目实施 370
24.3.1 系统配置文件 370
24.3.2 数据库连接 371
24.3.3 添加留言模块 372
24.3.4 查看留言模块 375
24.3.5 显示留言详细内容 377
24.3.6 登录模块 379
24.3.7 回复留言模块 381
24.3.8 删除留言模块 383
24.3.9 审核留言模块 385
24.4 小结 387
第25章 投票系统 388
25.1 投票系统简介 388
25.2 数据库设计 389
25.3 项目实施 390
25.3.1 系统配置文件 390
25.3.2 数据库操作类 391
25.4 投票模块 392
25.4.1 投票页面 393
25.4.2 投票处理 395
25.4.3 投票统计 396
25.5 登录模块 398
25.5.1 登录页面 398
25.5.2 登录处理 399
25.5.3 退出模块 400
25.6 投票主题模块 401
25.6.1 添加主题 401
25.6.2 修改投票主题 402
25.6.3 删除投票主题 404
25.7 参数配置模块 405
25.7.1 添加投票选项 405
25.7.2 修改投票选项 408
25.7.3 删除投票选项 410
25.8 小结 411
第26章 内容管理系统 412
26.1 内容管理系统简介 412
26.2 数据库设计 413
26.3 项目实施 416
26.3.1 系统配置 416
26.3.2 引导文件bootstrap.php 418
26.3.3 系统初始化 419
26.3.4 系统默认布局 422
26.3.5 系统异常处理 423
26.3.6 系统参数配置 425
26.4 用户模块 427
26.4.1 系统开关 427
26.4.2 注册 428
26.4.3 登录 431
26.4.4 退出 433
26.5 文章模块 434
26.5.1 管理控制器初始化 434
26.5.2 添加文章 437
26.5.3 管理文章 438
26.5.4 修改文章 442
26.5.5 审核文章 445
26.5.6 删除文章 447
26.5.7 显示文章列表 448
26.5.8 显示文章内容 451
26.6 文章类别管理 453
26.6.1 新增类别 453
26.6.2 修改类别 454
26.6.3 删除类别 457
26.7 文章模板管理 458
26.7.1 新增模板 458
26.7.2 修改模板 459
26.7.3 删除模板 461
26.8 小结 462
附录 常见PHP面试题 463