第1篇 基 础 知 识
第1章 初识PHP3
视频讲解:23分钟
1.1 PHP概述4
1.1.1 什么是PHP4
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 如何学好PHP9
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
第1篇 基 础 知 识
第1章 初识PHP3
视频讲解:23分钟
1.1 PHP概述4
1.1.1 什么是PHP4
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 如何学好PHP9
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 了解JavaScript154
9.1.1 什么是JavaScript154
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与Session195
视频讲解:1小时08分钟
11.1 Cookie管理196
11.1.1 了解Cookie196
11.1.2 创建Cookie197
11.1.3 读取Cookie198
11.1.4 删除Cookie199
11.1.5 Cookie的生命周期200
11.2 Session管理200
11.2.1 了解Session200
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 预定义变量$_FILES238
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 DATABASE288
16.3.2 查看数据库SHOW DATABASES289
16.3.3 选择数据库USE DATABASE289
16.3.4 删除数据库DROP DATABASE290
16.4 MySQL数据表操作290
16.4.1 创建数据表CREATE TABLE291
16.4.2 查看表结构SHOW COLUMNS或
DESCRIBE292
16.4.3 修改表结构ALTER TABLE293
16.4.4 重命名表RENAME TABLE294
16.4.5 删除表DROP TABLE295
16.5 MySQL语句操作295
16.5.1 插入记录insert295
16.5.2 查询数据库记录select296
16.5.3 修改记录update297
16.5.4 删除记录delete298
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 什么是PDO344
19.1.1 PDO概述344
19.1.2 PDO特点344
19.1.3 安装PDO344
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_
SILENT351
19.5.2 使用警告模式——PDO::ERRMODE_
WARNING352
19.5.3 使用异常模式——PDO::ERRMODE_
EXCEPTION353
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 什么是Smarty410
21.1.2 Smarty与MVC410
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 SimpleXML434
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 什么是Ajax444
23.1.2 Ajax的开发模式444
23.1.3 Ajax的优点445
23.2 Ajax使用的技术445
23.2.1 JavaScript脚本语言445
23.2.2 XMLHttpRequest445
23.2.3 XML语言448
23.2.4 DOM448
23.2.5 CSS448
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 在新窗口中使用session511
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