第1篇 基 础 知 识
第1章 初识PHP 3
视频讲解:23分钟
1.1 PHP概述 4
1.1.1 什么是PHP 4
1.1.2 PHP语言的优势 4
1.1.3 PHP 5的新特性 5
1.1.4 PHP的发展趋势 5
1.1.5 PHP的应用领域 6
1.2 扩展库 7
1.3 如何学好PHP 9
1.4 学习资源 10
1.4.1 常用软件资源 10
1.4.2 常用网上资源 11
1.4.3 主要图书网站 11
1.5 网站建设的基本流程 12
1.6 小结 12
第2章 PHP环境搭建和开发工具 13
视频讲解:36分钟
2.1 在Windows下使用AppServ
组合包 14
2.2 在Linux下的安装配置 16
2.2.1 安装Apache服务器 17
2.2.2 安装MySQL数据库 18
2.2.3 安装PHP 5语言 18
2.3 PHP常用开发工具 20
2.4 **个PHP实例 21
2.5 小结 23
2.6 练习与实践 23
第3章 PHP语言基础 25
视频讲解:1小时55分钟
3.1 PHP标记风格 26
3.2 PHP注释的应用 27
3.3 PHP的数据类型 28
3.3.1 标量数据类型 28
3.3.2 复合数据类型 33
3.3.3 特殊数据类型 33
3.3.4 转换数据类型 35
3.3.5 检测数据类型 36
3.4 PHP常量 37
3.4.1 声明和使用常量 37
3.4.2 预定义常量 38
3.5 PHP变量 39
3.5.1 变量声明及使用 39
3.5.2 变量作用域 41
3.5.3 可变变量 43
3.5.4 PHP预定义变量 43
3.6 PHP运算符 44
3.6.1 算术运算符 44
3.6.2 字符串运算符 45
3.6.3 赋值运算符 46
3.6.4 位运算符 46
3.6.5 逻辑运算符 47
3.6.6 比较运算符 48
3.6.7 错误控制运算符 49
3.6.8 三元运算符 49
3.6.9 运算符的优先顺序和结合规则 50
3.7 PHP的表达式 50
3.8 PHP函数 51
3.8.1 定义和调用函数 51
3.8.2 在函数间传递参数 52
3.8.3 从函数中返回值 54
3.8.4 变量函数 54
3.8.5 对函数的引用 55
3.8.6 取消引用 55
3.9 PHP编码规范 56
3.9.1 什么是编码规范 56
3.9.2 PHP书写规则 57
3.9.3 PHP命名规则 58
3.10 小结 60
3.11 练习与实践 60
第4章 流程控制语句 61
视频讲解:46分钟
4.1 条件控制语句 62
4.1.1 if语句 62
4.1.2 if…else语句 63
4.1.3 elseif语句 64
4.1.4 switch…case多重判断语句 65
4.2 循环控制语句 67
4.2.1 while循环语句 68
4.2.2 do…while循环语句 68
4.2.3 for循环语句 69
4.2.4 foreach循环语句 70
4.2.5 流程控制的另一种书写格式 71
4.2.6 使用break/continue语句跳出循环 72
4.3 小结 75
4.4 练习与实践 75
第5章 字符串操作 77
视频讲解:1小时13分钟
5.1 字符串简介 78
5.2 单引号和双引号的区别 78
5.3 字符串的连接符 79
5.4 字符串操作 80
5.4.1 去除字符串首尾空格和特殊字符 80
5.4.2 转义、还原字符串数据 82
5.4.3 获取字符串的长度 85
5.4.4 截取字符串 86
5.4.5 比较字符串 87
5.4.6 检索字符串 90
5.4.7 替换字符串 91
5.4.8 格式化字符串 94
5.4.9 分割字符串 94
5.4.10 合成字符串 95
5.5 小结 96
5.6 练习与实践 96
第6章 正则表达式 97
视频讲解:43分钟
6.1 什么是正则表达式 98
6.2 正则表达式语法规则 98
6.2.1 行定位符(^和$) 99
6.2.2 单词定界符(\b、\B) 99
6.2.3 字符类([ ]) 99
6.2.4 选择字符(|) 100
6.2.5 连字符(-) 100
6.2.6 排除字符([^]) 101
6.2.7 限定符(? * + {n,m}) 101
6.2.8 点号字符(.) 101
6.2.9 转义字符(\) 102
6.2.10 反斜线(\) 102
6.2.11 括号字符(()) 103
6.2.12 反向引用 103
6.2.13 模式修饰符 104
6.3 POSIX扩展正则表达式函数 104
6.3.1 ereg()函数和eregi()函数 105
6.3.2 ereg_replace()函数和eregi_replace()
函数 105
6.3.3 split()函数和spliti()函数 105
6.4 PCRE兼容正则表达式函数 106
6.4.1 preg_grep()函数 106
6.4.2 preg_match()函数和preg_match_all()
函数 107
6.4.3 preg_quote()函数 107
6.4.4 preg_replace()函数 108
6.4.5 preg_replace_callback()函数 109
6.4.6 preg_split()函数 109
6.5 应用正则表达式对用户注册信息
进行验证 109
6.6 小结 112
6.7 练习与实践 112
第7章 PHP数组 113
视频讲解:1小时23分钟
7.1 什么是数组 114
7.2 声明数组 114
7.3 数组的类型 116
7.3.1 数字索引数组 116
7.3.2 关联数组 116
7.4 输出数组 117
7.5 数组的构造 118
7.5.1 一维数组 118
7.5.2 二维数组 118
7.6 遍历数组 119
7.7 字符串与数组的转换 121
7.8 统计数组元素个数 123
7.9 查询数组中指定元素 124
7.10 获取数组中*后一个元素 125
7.11 向数组中添加元素 126
7.12 删除数组中重复元素 127
7.13 综合运用数组函数——实现多文件
上传 127
7.14 小结 129
7.15 练习与实践 129
第8章 PHP与Web页面交互 131
视频讲解:58分钟
8.1 表单 132
8.1.1 创建表单 132
8.1.2 表单元素 133
8.2 在普通的Web页中插入表单 136
8.3 获取表单数据的两种方法 138
8.3.1 使用POST()方法提交表单 138
8.3.2 使用GET()方法提交表单 139
8.4 PHP参数传递的常用方法 140
8.4.1 $_POST[]全局变量 140
8.4.2 $_GET[]全局变量 141
8.4.3 $_SESSION[]变量 141
8.5 在Web页中嵌入PHP脚本 141
8.5.1 在HTML标记中添加PHP脚本 141
8.5.2 对表单元素的value属性进行赋值 142
8.6 在PHP中获取表单数据 142
8.6.1 获取文本框、密码域、隐藏域、按钮、
文本域的值 142
8.6.2 获取单选按钮的值 143
8.6.3 获取复选框的值 144
8.6.4 获取下拉列表框/菜单列表框的值 145
8.6.5 获取文件域的值 148
8.7 对URL传递的参数进行编/解码 149
8.7.1 对URL传递的参数进行编码 149
8.7.2 对URL传递的参数进行解码 150
8.8 PHP与Web表单的综合应用 150
8.9 小结 151
8.10 练习与实践 152
第9章 PHP与JavaScript交互 153
视频讲解:1小时05分钟
9.1 了解JavaScript 154
9.1.1 什么是JavaScript 154
9.1.2 JavaScript的功能 154
9.2 JavaScript语言基础 154
9.2.1 JavaScript数据类型 155
9.2.2 JavaScript变量 155
9.2.3 JavaScript注释 156
9.3 自定义函数 157
9.4 JavaScript流程控制语句 158
9.4.1 条件语句 158
9.4.2 循环语句 162
9.4.3 跳转语句 163
9.5 JavaScript事件 165
9.6 调用JavaScript脚本(JavaScript脚本
嵌入方式) 166
9.6.1 在HTML中嵌入JavaScript脚本 166
9.6.2 应用JavaScript事件调用自定义函数 167
9.6.3 在PHP动态网页中引用JS文件 167
9.6.4 解决浏览器不支持JavaScript的问题 168
9.7 在PHP中调用JavaScript脚本 171
9.7.1 应用JavaScript脚本验证表单元素是否
为空 171
9.7.2 应用JavaScript脚本制作二级导航
菜单 172
9.7.3 应用JavaScript脚本控制文本域和
复选框 174
9.8 小结 176
9.9 练习与实践 176
第10章 日期和时间 177
视频讲解:30分钟
10.1 系统时区设置 178
10.1.1 时区划分 178
10.1.2 时区设置 178
10.2 PHP日期和时间函数 178
10.2.1 获得本地化时间戳 179
10.2.2 获取当前时间戳 180
10.2.3 获取当前日期和时间 180
10.2.4 获取日期信息 181
10.2.5 检验日期的有效性 182
10.2.6 输出格式化的日期和时间 183
10.2.7 显示本地化的日期和时间 184
10.2.8 将日期和时间解析为UNIX时间戳 187
10.3 日期和时间的应用 188
10.3.1 比较两个时间的大小 188
10.3.2 实现倒计时功能 189
10.3.3 计算页面脚本的运行时间 190
10.4 小结 191
10.5 练习与实践 191
第2篇 核 心 技 术
第11章 Cookie与Session 195
视频讲解:1小时08分钟
11.1 Cookie管理 196
11.1.1 了解Cookie 196
11.1.2 创建Cookie 197
11.1.3 读取Cookie 198
11.1.4 删除Cookie 199
11.1.5 Cookie的生命周期 200
11.2 Session管理 200
11.2.1 了解Session 200
11.2.2 创建会话 201
11.2.3 Session设置时间 203
11.2.4 通过Session判断用户的操作权限 204
11.3 Session高级应用 207
11.3.1 Session临时文件 207
11.3.2 Session缓存 208
11.3.3 Session数据库存储 209
11.4 小结 212
11.5 练习与实践 212
第12章 图形图像处理技术 213
视频讲解:46分钟
12.1 在PHP中加载GD库 214
12.2 Jpgraph的安装与配置 215
12.2.1 Jpgraph的安装 215
12.2.2 Jpgraph的配置 215
12.3 图形图像的典型应用 216
12.3.1 创建一个简单的图像 216
12.3.2 使用GD2函数在照片上添加文字 216
12.3.3 使用图像处理技术生成验证码 217
12.3.4 使用柱形图统计图书月销售量 219
12.3.5 使用折线图统计图书月销售额 220
12.3.6 使用3D饼形图统计各类商品的年销售
额比率 222
12.4 小结 223
12.5 练习与实践 223
第13章 文件系统 225
视频讲解:49分钟
13.1 文件处理 226
13.1.1 打开/关闭文件 226
13.1.2 读写文件 227
13.1.3 操作文件 232
13.2 目录处理 233
13.2.1 打开/关闭目录 233
13.2.2 浏览目录 234
13.2.3 操作目录 234
13.3 文件处理的高级应用 235
13.3.1 远程文件的访问 235
13.3.2 文件指针 235
13.3.3 锁定文件 237
13.4 文件上传 238
13.4.1 配置php.ini文件 238
13.4.2 预定义变量$_FILES 238
13.4.3 文件上传函数 239
13.4.4 多文件上传 240
13.5 小结 242
13.6 练习与实践 242
第14章 面向对象 243
视频讲解:27分钟
14.1 面向对象的基本概念 244
14.1.1 类 244
14.1.2 对象 244
14.1.3 面向对象编程的三大特点 245
14.2 PHP与对象 245
14.2.1 类的定义 245
14.2.2 成员方法 246
14.2.3 类的实例化 246
14.2.4 成员变量 247
14.2.5 类常量 248
14.2.6 构造方法和析构方法 249
14.2.7 继承和多态的实现 251
14.2.8 “$this ->”和“::”的使用 254
14.2.9 数据隐藏 255
14.2.10 静态变量(方法) 257
14.3 PHP对象的高级应用 259
14.3.1 final关键字 259
14.3.2 抽象类 260
14.3.3 接口的使用 261
14.3.4 克隆对象 263
14.3.5 对象比较 264
14.3.6 对象类型检测 265
14.3.7 魔术方法(__) 266
14.4 面向对象的应用——中文字符串的
截取类 270
14.5 小结 272
14.6 练习与实践 272
第15章 PHP加密技术 273
视频讲解:24分钟
15.1 PHP加密函数 274
15.1.1 使用crypt()函数进行加密 274
15.1.2 使用md5()函数进行加密 275
15.1.3 使用sha1()函数进行加密 277
15.2 PHP加密扩展库 278
15.2.1 Mcrypt扩展库 278
15.2.2 Mhash扩展库 280
15.3 小结 282
15.4 练习与实践 282
第16章 MySQL数据库基础 283
视频讲解:40分钟
16.1 MySQL概述 284
16.2 启动、连接、断开和停止MySQL
服务器 285
16.2.1 启动MySQL服务器 285
16.2.2 连接和断开MySQL服务器 286
16.2.3 停止MySQL服务器 287
16.3 MySQL数据库操作 288
16.3.1 创建数据库CREATE DATABASE 288
16.3.2 查看数据库SHOW DATABASES 289
16.3.3 选择数据库USE DATABASE 289
16.3.4 删除数据库DROP DATABASE 290
16.4 MySQL数据表操作 290
16.4.1 创建数据表CREATE TABLE 291
16.4.2 查看表结构SHOW COLUMNS或
DESCRIBE 292
16.4.3 修改表结构ALTER TABLE 293
16.4.4 重命名表RENAME TABLE 294
16.4.5 删除表DROP TABLE 295
16.5 MySQL语句操作 295
16.5.1 插入记录insert 295
16.5.2 查询数据库记录select 296
16.5.3 修改记录update 297
16.5.4 删除记录delete 298
16.6 MySQL数据库备份和恢复 298
16.6.1 数据的备份 299
16.6.2 数据的恢复 300
16.7 小结 301
16.8 练习与实践 301
第17章 phpMyAdmin图形化管理工具 303
视频讲解:11分钟
17.1 phpMyAdmin介绍 304
17.2 phpMyAdmin的使用 304
17.2.1 操作数据库 304
17.2.2 操作数据表 306
17.2.3 使用SQL语句操作数据表 307
17.2.4 管理数据记录 309
17.2.5 生成和执行mysql数据库脚本 311
17.3 小结 313
17.4 练习与实践 313
第18章 PHP操作MySQL数据库 315
视频讲解:1小时15分钟
18.1 PHP访问MySQL数据库的一般
步骤 316
18.2 PHP操作MySQL数据库的方法 317
18.2.1 使用mysql_connect()函数连接MySQL
服务器 317
18.2.2 使用mysql_select_db()函数选择数据库
文件 319
18.2.3 使用mysql_query()函数执行SQL语句 320
18.2.4 使用mysql_fetch_array()函数从数组
结果集中获取信息 321
18.2.5 使用mysql_fetch_object()函数从结果
集中获取一行作为对象 323
18.2.6 使用mysql_fetch_row()函数逐行获取
结果集中的每条记录 324
18.2.7 使用mysql_num_rows()函数获取查询
结果集中的记录数 326
18.3 PHP操作MySQL数据库 327
18.3.1 使用insert语句动态添加公告信息 327
18.3.2 使用select语句查询公告信息 330
18.3.3 使用update语句动态编辑公告信息 332
18.3.4 使用delete语句动态删除公告信息 334
18.3.5 分页显示公告信息 335
18.3.6 将数据库连接、操作、分页和字符串
截取的方法封装到类中 337
18.4 小结 341
18.5 练习与实践 342
第19章 PDO数据库抽象层 343
视频讲解:50分钟
19.1 什么是PDO 344
19.1.1 PDO概述 344
19.1.2 PDO特点 344
19.1.3 安装PDO 344
19.2 PDO连接数据库 345
19.2.1 PDO构造函数 345
19.2.2 DSN详解 346
19.3 PDO中执行SQL语句 346
19.3.1 exec()方法 346
19.3.2 query()方法 346
19.3.3 预处理语句——prepare()和execute()
方法 347
19.4 PDO中获取结果集 347
19.4.1 fetch()方法 347
19.4.2 fetchAll()方法 349
19.4.3 fetchColumn()方法 350
19.5 PDO中捕获SQL语句中的错误 351
19.5.1 使用默认模式——PDO::ERRMODE_
SILENT 351
19.5.2 使用警告模式——PDO::ERRMODE_
WARNING 352
19.5.3 使用异常模式——PDO::ERRMODE_
EXCEPTION 353
19.6 PDO中错误处理 355
19.6.1 errorCode()方法 355
19.6.2 errorInfo()方法 356
19.7 PDO中事务处理 357
19.8 PDO中存储过程 359
19.9 小结 360
19.10 练习与实践 360
第20章 ThinkPHP框架 361
视频讲解:2小时31分钟
20.1 ThinkPHP简介 362
20.1.1 ThinkPHP框架的特点 362
20.1.2 环境要求 362
20.1.3 下载ThinkPHP框架 363
20.2 ThinkPHP架构 364
20.2.1 ThinkPHP的目录结构 364
20.2.2 自动生成项目目录 365
20.2.3 项目目录部署方案 366
20.2.4 命名规范 367
20.2.5 项目构建流程 368
20.3 ThinkPHP的配置 370
20.3.1 配置格式 370
20.3.2 调试配置 371
20.4 ThinkPHP的控制器 371
20.4.1 控制器 371
20.4.2 跨模块调用 373
20.5 ThinkPHP的模型 377
20.5.1 模型的命名 377
20.5.2 实例化模型 378
20.5.3 属性访问 381
20.5.4 连接数据库 382
20.5.5 创建数据 385
20.5.6 连贯操作 386
20.5.7 CURD操作 387
20.6 ThinkPHP的视图 393
20.6.1 模板定义 394
20.6.2 模板赋值 394
20.6.3 指定模板文件 395
20.6.4 特殊字符串替换 395
20.7 内置ThinkTemplate模板引擎 399
20.8 小结 404
20.9 练习与实践 405
第3篇 高 级 应 用
第21章 Smarty模板技术 409
视频讲解:57分钟
21.1 Smarty简介 410
21.1.1 什么是Smarty 410
21.1.2 Smarty与MVC 410
21.1.3 Smarty特点 410
21.2 Smarty的安装配置 411
21.2.1 Smarty下载和安装 411
21.2.2 **个Smarty程序 411
21.2.3 Smarty配置 413
21.3 Smarty模板设计 414
21.3.1 Smarty模板文件 414
21.3.2 注释 415
21.3.3 变量 415
21.3.4 修饰变量 417
21.3.5 流程控制 419
21.4 Smarty程序设计 422
21.4.1 Smarty中的常用方法 422
21.4.2 Smarty的配置变量 424
21.5 Smarty模板的应用 424
21.5.1 将Smarty的配置方法封装到类中 424
21.5.2 Smarty+ADODB整合应用 426
21.6 小结 428
21.7 练习与实践 428
第22章 PHP与XML技术 429
视频讲解:23分钟
22.1 XML的概述 430
22.2 XML语法 430
22.2.1 XML文档结构 430
22.2.2 XML声明 431
22.2.3 处理指令 431
22.2.4 注释 431
22.2.5 XML元素 432
22.2.6 XML属性 432
22.2.7 使用CDATA标记 432
22.2.8 XML命名空间 433
22.3 在PHP中创建XML文档 434
22.4 SimpleXML 434
22.4.1 创建SimpleXML对象 435
22.4.2 遍历所有子元素 436
22.4.3 遍历所有属性 436
22.4.4 访问特定节点元素和属性 437
22.4.5 修改XML数据 438
22.4.6 保存XML文档 439
22.5 动态创建XML文档 440
22.6 小结 441
22.7 练习与实践 441
第23章 PHP与Ajax技术 443
视频讲解:43分钟
23.1 Ajax概述 444
23.1.1 什么是Ajax 444
23.1.2 Ajax的开发模式 444
23.1.3 Ajax的优点 445
23.2 Ajax使用的技术 445
23.2.1 JavaScript脚本语言 445
23.2.2 XMLHttpRequest 445
23.2.3 XML语言 448
23.2.4 DOM 448
23.2.5 CSS 448
23.3 Ajax开发需要注意的几个问题 449
23.4 在PHP中应用Ajax技术的典型
应用 450
23.4.1 在PHP中应用Ajax技术检测用户名 450
23.4.2 在PHP中应用Ajax技术实现博客文章
类别添加 452
23.5 小结 456
23.6 练习与实践 456
第4篇 项 目 实 战
第24章 应用Smarty模板开发电子商务
网站 459
视频讲解:2小时19分钟
24.1 开发背景 460
24.2 需求分析 460
24.3 系统分析 460
24.3.1 系统目标 460
24.3.2 系统功能结构 461
24.3.3 开发环境 462
24.3.4 文件夹组织结构 462
24.4 数据库与数据表的设计 462
24.4.1 数据库分析 463
24.4.2 创建数据库和数据表 464
24.5 公共文件设计 466
24.5.1 数据库连接、管理和分页类文件 466
24.5.2 Smarty模板配置类文件 469
24.5.3 执行类的实例化文件 469
24.6 前台首页设计 470
24.6.1 前台首页技术分析 471
24.6.2 前台首页实现过程 471
24.7 登录模块设计 473
24.7.1 登录模块概述 473
24.7.2 登录模块技术分析 473
24.7.3 用户注册 475
24.7.4 用户登录 477
24.7.5 找回密码 479
24.8 会员信息模块设计 484
24.8.1 会员信息模块概述 484
24.8.2 会员信息模块技术分析 484
24.8.3 会员中心 485
24.8.4 安全退出 489
24.9 商品展示模块 489
24.9.1 商品展示模块概述 489
24.9.2 商品展示模块技术分析 490
24.9.3 商品展示模块的实现过程 491
24.10 购物车模块设计 494
24.10.1 购物车模块概述 494
24.10.2 购物车模块技术分析 494
24.10.3 购物车展示 496
24.10.4 更改商品数量 498
24.10.5 删除商品 499
24.10.6 保存购物车 501
24.11 收银台模块设计 503
24.11.1 收银台模块概述 503
24.11.2 收银台模块技术分析 503
24.11.3 显示订单 504
24.11.4 填写订单 504
24.11.5 处理订单 505
24.12 后台首页设计 506
24.12.1 后台首页概述 506
24.12.2 后台首页技术分析 507
24.12.3 后台首页实现过程 509
24.13 开发常见问题与解决 510
24.13.1 解决Ajax的乱码问题 511
24.13.2 使用JS脚本获取、输出标签内容 511
24.13.3 禁用页面缓存 511
24.13.4 在新窗口中使用session 511
24.13.5 判断上传文件格式 512
24.13.6 设置服务器的时间 512
24.14 小结 513
第25章 应用ThinkPHP框架开发明日导
航网 515
视频讲解:41分钟
25.1 项目设计思路 516
25.1.1 功能阐述 516
25.1.2 功能结构 516
25.1.3 系统预览 516
25.2 数据库与数据表设计 518
25.2.1 数据库设计 518
25.2.2 数据表设计 518
25.2.3 连接数据库 519
25.3 ThinkPHP架设项目结构 520
25.3.1 下载ThinkPHP框架 520
25.3.2 自动生成项目目录 520
25.4 明日导航前台页面设计 521
25.4.1 页面设计概述 521
25.4.2 控制器的创建 522
25.4.3 视图中应用到的模板标签 524
25.4.4 在视图中创建模板文件 527
25.5 明日导航后台管理设计 528
25.5.1 后台管理概述 528
25.5.2 通过系统配置文件存储后台登录数据 528
25.5.3 后台管理架构解析 529
25.5.4 ThinkPHP框架中的分页技术 530
25.5.5 后台管理视图中应用的模板标签 531
25.5.6 后台登录 533
25.5.7 后台管理主页 534
25.5.8 高级类别管理 536
25.5.9 判断访问用户的权限 539
25.5.10 操作提示页面 539
25.6 小结 540