第1章 PHP概述 1
1.1 什么是PHP 2
1.2 PHP开发语言的特点 2
1.3 PHP的发展趋势 3
1.4 如何学好PHP 4
1.5 PHP的语法结构 5
1.5.1 PHP标识符的规则 5
1.5.2 PHP标记符的作用 5
1.6 程序注释 6
1.6.1 使用PHP注释 6
1.6.2 使用HTML注释 7
1.6.3 有效使用注释 7
1.7 PHP输出指令 8
1.7.1 应用print()语句输出字符 8
1.7.2 应用echo()语句输出字符 9
1.7.3 应用printf()语句格式化输出字符 10
1.7.4 应用sprintf()语句格式化输出字符 11
1.8 PHP包含语句 11
1.8.1 应用include()语句包含文件 11
1.8.2 应用require()语句包含文件 12
1.8.3 应用include_once()语句包含文件 13
1.8.4 应用require_once()语句包含文件 13
1.8.5 include()语句和require()语句的区别 14
1.8.6 include_once()语句和require_once()语句的区别 16
1.9 PHP动态网页的工作流程 16
1.10 体验PHP—编写第1个PHP Web 16
1.10.1 创建站点 16
1.10.2 使用Dreamweaver创建PHP文件 17
1.10.3 创建PHP标记 17
1.10.4 编写PHP代码 17
1.10.5 存储文件 18
1.10.6 网站运行结果 18
1.11 获取帮助信息 18
1.11.1 PHP学习工具和资料下载 19
1.11.2 获取PHP的源代码资源 19
1.12 本章小结 20
第2章 PHP环境的安装与配置 21
2.1 Windows下应用AppServ快速配置PHP开发环境 22
2.2 Windows下Apache+MySQL+PHP的安装配置 24
2.2.1 Windows下Apache的安装配置 24
2.2.2 Windows下MySQL的安装配置 27
2.2.3 Windows下PHP的安装配置 28
2.3 在Windows下架设IIS+PHP的执行环境 29
2.3.1 IIS的安装 3
2.3.2 架设PHP到IIS 3
2.4 Linux下Apache+MySQL+PHP的安装配置 32
2.4.1 Linux下Apache的安装配置 32
2.4.2 Linux下MySQL的安装配置 33
2.4.3 Linux下PHP的安装配置 34
2.5 获取PHP的配置信息 35
2.5.1 Apache服务器的基本配置 35
2.5.2 php.ini文件的基本配置 35
2.6 解决PHP的常见配置问题 37
2.6.1 解决Apache服务器端口冲突 37
2.6.2 更改Apache服务器默认存储的文件路径 37
2.6.3 在php.ini文件中更改上传文件的大小 37
2.6.4 增加PHP扩展模块 38
2.6.5 修改php.ini文件以支持MySQL数据库 38
2.7 本章小结 38
第3章 PHP语言基础 39
3.1 PHP常量 4
3.1.1 声明和使用常量 4
3.1.2 预定义常量 41
3.2 PHP变量 42
3.2.1 理解变量 42
3.2.2 声明变量 43
3.2.3 变量作用域 43
3.2.4 可变变量 45
3.2.5 预定义变量 45
3.2.6 变量的生存周期 46
3.3 数据类型 46
3.3.1 标量数据类型 46
3.3.2 复合数据类型 5
3.3.3 特殊数据类型 51
3.3.4 转换数据类型 52
3.3.5 检测数据类型 53
3.4 PHP的运算符 54
3.4.1 操作算术运算符 54
3.4.2 操作字符串运算符 55
3.4.3 操作赋值运算符 55
3.4.4 操作位运算符 56
3.4.5 递增或递减运算符 56
3.4.6 操作逻辑运算符 57
3.4.7 操作比较运算符 58
3.4.8 其他运算符 59
3.4.9 运算符的使用规则 59
3.5 PHP的表达式 60
3.6 自定义函数 61
3.6.1 定义和调用函数 61
3.6.2 在函数间传递参数 62
3.6.3 函数的返回值 63
3.7 本章小结 64
第4章 流程控制语句 65
4.1 算法 66
4.1.1 什么是算法 66
4.1.2 算法的描述方法 66
4.1.3 程序的3种控制结构 67
4.2 条件控制语句 68
4.2.1 if条件控制语句 68
4.2.2 switch多分支语句 7
4.2.3 if和switch语句的区别 72
4.3 循环语句 74
4.3.1 while循环语句 74
4.3.2 do...while循环语句 76
4.3.3 for循环语句 77
4.3.4 foreach循环语句 78
4.3.5 各循环语句间的区别 79
4.4 跳转语句 80
4.4.1 break跳转语句 80
4.4.2 continue跳转语句 81
4.4.3 return跳转语句 82
4.5 try...catch...throw语句 83
4.6 流程控制语句的嵌套 83
4.7 本章小结 84
第5章 PHP与Web页面交互 85
5.1 表单数据的提交方式 86
5.1.1 通过GET方法提交数据 86
5.1.2 通过POST方法提交数据 87
5.2 获取提交的表单数据 88
5.2.1 获取按钮的数据 88
5.2.2 获取文本区域的数据 89
5.2.3 获取单选按钮的数据 90
5.2.4 获取复选框的数据 91
5.2.5 获取列表框的数据 92
5.2.6 获取文本域的数据 93
5.2.7 获取文件域的数据 94
5.2.8 获取隐藏域的数据 94
5.3 在PHP中处理表单变量 95
5.4 对表单传递的变量值进行编码与解码 96
5.4.1 URL编码与解码 96
5.4.2 BASE64编码与解码 97
5.5 本章小节 98
第6章 字符串操作 99
6.1 字符串简介 100
6.2 单引号和双引号的区别 100
6.3 字符串的连接符 101
6.4 字符串操作 101
6.4.1 去除字符串首尾空格和特殊字符 101
6.4.2 字符串与HTML相互转换 103
6.4.3 转义、还原字符串数据 104
6.4.4 获取字符串的长度 106
6.4.5 截取字符串 107
6.4.6 比较字符串 108
6.4.7 检索字符串 111
6.4.8 替换字符串 113
6.4.9 格式化字符串 116
6.4.10 连接、分割字符串 117
6.4.11 URL编码解码函数 119
6.5 本章小结 121
第7章 正则表达式 122
7.1 什么是正则表达式 123
7.1.1 正则表达式的发展史 123
7.1.2 正则表达式中的术语 123
7.2 正则表达式的语法规则 123
7.2.1 行定位符(^和$) 124
7.2.2 单词定界符(\b、\B) 125
7.2.3 字符类([ ]) 125
7.2.4 选择字符(|) 126
7.2.5 连字符(-) 127
7.2.6 排除字符(^) 127
7.2.7 限定符(?*+{n,m}) 127
7.2.8 点号字符(.) 128
7.2.9 转义字符(\) 128
7.2.10 反斜线(\) 128
7.2.11 括号字符(()) 129
7.2.12 反向引用 130
7.2.13 捕获 130
7.2.14 断言(环视) 130
7.2.15 模式修饰符 131
7.2.16 模式匹配的顺序 131
7.3 POSIX扩展正则表达式函数 132
7.3.1 ereg()函数和eregi()函数 132
7.3.2 ereg_replace()函数和ereg_ireplace()函数 133
7.3.3 split()函数和spliti()函数 134
7.4 PCRE兼容正则表达式函数 135
7.4.1 preg_grep()函数 135
7.4.2 preg_match()函数和preg_match_all()函数 135
7.4.3 preg-quote()函数 137
7.4.4 preg_replace()函数 137
7.4.5 preg_replacecallback()函数 137
7.4.6 preg_split()函数 138
7.5 本章小结 138
第8章 PHP数组 139
8.1 数组的概述 140
8.2 数组的基本操作 140
8.2.1 声明数组 140
8.2.2 输出数组 141
8.2.3 定位数组 141
8.2.4 遍历数组 143
8.2.5 增加、删除数组元素 147
8.2.6 确定数组大小和惟一性 149
8.2.7 数组的排序 150
8.2.8 数组的合并与拆分 151
8.2.9 数组和字符串之间的转换 154
8.3 其他数组函数 155
8.3.1 创建指定范围的数组 155
8.3.2 对数组中的元素进行随机排序 156
8.3.3 对数组中所有元素进行求和 156
8.3.4 将一维数组拆分为多维数组 157
8.4 PHP全局数组 158
8.4.1 $-SERVER[ ]全局数组 158
8.4.2 $_GET[ ]和$_POST[ ]全局数组 158
8.4.3 $_COOKIE全局数组 158
8.4.4 $_ENV[ ]全局数组 158
8.4.5 $_REQUEST[ ]全局数组 158
8.4.6 $_SESSION[ ]全局数组 158
8.4.7 $_FILES[ ]全局数组 159
8.5 本章小结 160
第9章 日期和时间 161
9.1 日期和时间的概述 162
9.2 处理日期和时间 162
9.2.1 获取日期和时间 163
9.2.2 获取日期和时间信息 164
9.2.3 检验日期和时间的有效性 165
9.2.4 输出格式化的日期和时间 166
9.3 PHP的时间戳 168
9.3.1 PHP中的时间戳 168
9.3.2 获取格林威治标准时间的时间戳 168
9.3.3 获取本地化时间戳 169
9.3.4 获取当前时间戳 171
9.4 本章小结 171
第10章 文件和目录处理技术 172
10.1 文件处理技术的基本操作 173
10.1.1 打开文件 173
10.1.2 读取文件 173
10.1.3 写入文件 178
10.1.4 删除文件 179
10.1.5 关闭文件 179
10.1.6 复制文件 179
10.1.7 移动和重命名文件 180
10.2 文件的高级处理技术 180
10.2.1 访问远程文件 181
10.2.2 测试文件指针的位置 181
10.2.3 文件指针的定位 181
10.2.4 锁定文件 183
10.3 目录操作技术 183
10.3.1 打开目录 183
10.3.2 读取目录 183
10.3.3 建立目录 184
10.3.4 删除目录 184
10.3.5 改变目录 185
10.3.6 关闭目录 185
10.4 文件上传和下载技术 185
10.4.1 开启PHP文件上传功能 185
10.4.2 POST方法上传文件 186
10.4.3 上传多个文件 187
10.4.4 生成临时文件 188
10.4.5 下载文件 188
10.5 本章小结 189
第11章 图形图像处理技术 190
11.1 GD函数库的概述 191
11.1.1 Windows下打开GD2函数库支持 191
11.1.2 Linux下打开GD2函数库支持 191
11.1.3 应用GD2函数创建图像 192
11.2 基本的图像处理技术 193
11.2.1 创建画布 193
11.2.2 设置颜色 193
11.2.3 生成图像 194
11.2.4 销毁图像 195
11.2.5 绘制点与线 195
11.2.6 绘制几何图形 197
11.2.7 填充几何图形 198
11.2.8 输出文字 201
11.3 Jpgraph的安装与配置 203
11.3.1 Jpgraph的安装 204
11.3.2 Jpgraph的配置 204
11.4 图形图像的典型应用 204
11.4.1 应用图像处理技术生成验证码 204
11.4.2 应用图像处理技术生成饼形图 206
11.4.3 应用柱形图统计商品月销量 208
11.4.4 应用折线图分析学习PHP的过程 209
11.5 本章小结 210
第12章 Cookie和会话控制 211
12.1 概述 212
12.1.1 Cookie概述 212
12.1.2 会话控制 212
12.2 Cookie的操作 212
12.2.1 设置Cookie 212
12.2.2 访问Cookie 213
12.2.3 删除Cookie 213
12.2.4 Cookie数组 214
12.3 Cookie的应用 215
12.4 会话的操作 216
12.4.1 会话的基本方式 216
12.4.2 配置PHP的会话 217
12.4.3 创建会话 217
12.5 会话的应用 219
12.5.1 登录验证 219
12.5.2 通过Session禁用页面刷新 221
12.6 本章小结 222
第13章 面向对象 223
13.1 概述 224
13.1.1 面向对象的概念 224
13.1.2 面向对象语言的3大特点 224
13.1.3 PHP5.0面向对象的新特性 225
13.2 类和对象 225
13.2.1 类的结构及声明方式 225
13.2.2 属性和方法的定义 225
13.2.3 使用构造函数 226
13.2.4 使用析构函数 227
13.2.5 类的实例化 227
13.3 控制访问权限 228
13.4 类的继承和重载 228
13.4.1 继承的概念 228
13.4.2 PHP中实现继承的方法 228
13.4.3 重载的概念 229
13.4.4 PHP中实现类重载的方法 229
13.4.5 用final关键字对继承和重载进行限制 229
13.5 接口 230
13.5.1 接口的概念 230
13.5.2 PHP实现接口 230
13.6 PHP面向对象新特性 231
13.6.1 Per-Class常量的应用 231
13.6.2 对象的克隆 231
13.6.3 _autoload()方法 232
13.6.4 使用instanceof关键字判断实例类型 232
13.6.5 使用this关键字调用类成员 232
13.6.6 使用parent关键字调用父类成员 233
13.6.7 使用self关键字调用类体中的静态成员 233
13.6.8 辅助函数 234
13.7 PHP中面向对象的应用 238
13.7.1 应用面向对象的方式实现用户身份验证 238
13.7.2 数据的分页显示 239
13.8 本章小结 241
第14章 MySQL数据库基础 242
14.1 MySQL概述 243
14.1.1 MySQL的特点 243
14.1.2 SQL和MySQL 243
14.2 MySQL服务器的启动和关闭 244
14.2.1 启动MySQL服务器 244
14.2.2 连接MySQL服务器 245
14.2.3 关闭MySQL服务器 245
14.3 操作数据库 246
14.3.1 创建数据库 246
14.3.2 选择数据库 247
14.3.3 删除数据库 247
14.4 操作数据表 247
14.4.1 创建表 248
14.4.2 修改表 249
14.4.3 删除表 249
14.5 操作数据 250
14.5.1 添加语句(INSERT) 250
14.5.2 修改语句(UPDATE) 251
14.5.3 删除语句(DELETE) 251
14.5.4 批量增加记录语句(LOADDATA和MYSQLIMPORT) 251
14.6 数据查询语句 252
14.6.1 运用SELECT查询(对数据表的选择) 252
14.6.2 WHERE条件语句的应用 253
14.6.3 GROUPBY对结果分组 254
14.6.4 DISTINCT在结果中去除重复行 254
14.6.5 ORDERBY对结果排序 254
14.6.6 LIKE应用 255
14.6.7 CONCAT联合多列 255
14.6.8 LIMIT限定结果行数 256
14.6.9 使用函数和表达式 256
14.7 数据类型 257
14.7.1 数字类型 257
14.7.2 字符串类型 258
14.7.3 日期和时间数据类型 259
14.8 PhpMyAdmin图形化管理工具 260
14.8.1 库级操作 260
14.8.2 表级操作 261
14.8.3 增删改数据 262
14.8.4 查询数据 263
14.8.5 数据的导入与导出 264
14.9 本章小结 266
第15章 数据库编程技术 267
15.1 PHP操纵MySQL数据库 268
15.1.1 建立与MySQL数据库的连接 268
15.1.2 选择和使用MySQL数据库 268
15.1.3 执行SQL指令 269
15.1.4 分析结果集 269
15.1.5 断开与MySQL数据库的连接 270
15.2 管理MySQL数据库中的数据 271
15.2.1 向数据库中添加数据 27
15.2.2 编辑数据库数据 272
15.2.3 从数据库中删除数据 274
15.2.4 批量数据操作 276
15.3 对MySQL表的查询 277
15.3.1 通用查询 277
15.3.2 高级查询 279
15.3.3 分组统计 280
15.3.4 对查询结果分页显示 282
15.3.5 对查询结果进行跳转分页显示 283
15.4 数据备份和恢复 286
15.5 本章小结 288
第16章 PHP的字符编码 289
16.1 了解网页字符编码 290
16.1.1 ASCII字符集 290
16.1.2 ISO8859字符集 290
16.1.3 GB2312与GBK编码 290
16.1.4 Unicode字符集 291
16.1.5 UTF-8编码 291
16.2 PHP网页的字符编码 292
16.2.1 正确使用文件编码 292
16.2.2 编码转换 293
16.2.3 检测字符串的编码 294
16.2.4 字符编码的优先级 294
16.2.5 乱码产生的根源和解决方案 295
16.3 PHP开发中的中文编码问题 295
16.3.1 数据库中的字符集编码问题 295
16.3.2 解决页面中的乱码问题 296
16.3.3 通过PHP自定义函数无乱码截取中文字符串 298
16.4 PHP的区域化设置 300
16.4.1 PHP网页的区域化 301
16.4.2 使用setlocale()函数设置区域化 302
16.5 本章小节 302
第17章 PHP的调试与异常处理 303
17.1 基本调试策略 304
17.2 常见错误分析 304
17.2.1 语法错误 304
17.2.2 语义错误 307
17.2.3 注释错误 307
17.2.4 运行错误 308
17.2.5 逻辑错误 310
17.3 PHP.INI中的错误处理设置 310
17.4 错误处理 312
17.4.1 错误的隐藏 312
17.4.2 错误的定制 312
17.4.3 超时错误的处理 313
17.5 程序调试 313
17.5.1 应用DIE语句调试 313
17.5.2 应用PRINT语句调试 314
17.5.3 应用MySQL_error语句输出错误信息 315
17.6 MySQL的常见错误 316
17.6.1 PHP与MySQL连接错误 316
17.6.2 解决数据库乱码问题 317
17.6.3 上传二进制数据到数据库失败 317
17.7 本章小结 319
第18章 PHP与XML的网络开发 320
18.1 XML的概述 321
18.2 XML语法 321
18.2.1 XML文档结构 321
18.2.2 XML声明 321
18.2.3 处理指令 322
18.2.4 XML注释 322
18.2.5 XML元素 322
18.2.6 XML属性 323
18.2.7 使用CDATA标记 323
18.2.8 XML命名空间 324
18.3 在PHP中创建XML文档 324
18.4 通过DOM操作XML文档 325
18.4.1 通过DOM类库创建XML文档 325
18.4.2 通过getElementsByTagName()方法读取XML 327
18.4.3 通过DOM类库向XML中添加数据 328
18.4.4 通过Xpath查询XML中的数据 330
18.4.5 通过replaceChild()方法修改XML文档 331
18.4.6 通过removeChild()方法删除XML文档 334
18.5 本章小结 335
第19章 Smarty模板技术 336
19.1 Smarty简介 337
19.1.1 什么是Smarty 337
19.1.2 Smarty与MVC 337
19.1.3 Smarty的特点 337
19.2 Smarty的安装配置 337
19.2.1 Smarty下载与安装 337
19.2.2 第1个Smarty程序 338
19.2.3 配置Smarty 339
19.3 Smarty模板设计 340
19.3.1 Smatyr模板文件 340
19.3.2 注释 340
19.3.3 变量 340
19.3.4 修饰变量(variable modifers) 343
19.3.5 内建函数 344
19.3.6 自定义函数 349
19.4 Smarty程序设计 351
19.4.1 Smarty中的常用方法 352
19.4.2 Smarty的配置变量 353
19.4.3 Smarty缓存 354
19.5 本章小结 354
第20章 注册和登录 355
20.1 设计思路 356
20.1.1 功能阐述 356
20.1.2 程序业务流程 356
20.1.3 文件组织结构 356
20.2 数据库设计 357
20.3 连接数据库 358
20.3.1 关键函数 358
20.3.2 功能实现 359
20.4 用户注册模块 359
20.4.1 关键函数 359
20.4.2 页面设计 360
20.4.3 功能实现 361
20.5 检测用户是否被占用 362
20.5.1 关键函数 362
20.5.2 页面设计 363
20.5.3 功能实现 364
20.6 验证用户注册信息是否合法 365
20.6.1 关键函数 365
20.6.2 功能实现 365
20.7 用户登录 366
20.7.1 关键函数 366
20.7.2 页面设计 367
20.7.3 功能实现 368
20.8 图片验证码功能 369
20.8.1 关键函数介绍 369
20.8.2 页面设计 371
20.8.3 功能实现 371
20.9 退出登录功能 372
20.9.1 关键函数 372
20.9.2 功能实现 372
20.10 本章小节 372
第21章 留言本 373
21.1 设计思路 374
21.1.1 功能阐述 374
21.1.2 程序业务流程 374
21.1.3 文件组织结构 375
21.2 数据库设计 376
21.3 连接数据库 377
21.3.1 关键函数介绍 377
21.3.2 功能实现 377
21.4 添加留言模块 378
21.4.1 关键函数 378
21.4.2 页面设计 378
21.4.3 功能实现 380
21.5 查看留言模块 381
21.5.1 关键函数 381
21.5.2 页面设计 381
21.5.3 功能实现 381
21.6 修改留言模块 383
21.6.1 关键函数 383
21.6.2 页面设计 384
21.6.3 功能实现 385
21.7 删除留言模块 386
21.7.1 关键函数 386
21.7.2 页面设计 386
21.7.3 功能实现 387
21.8 查询留言模块 388
21.8.1 关键函数 388
21.8.2 页面设计 388
21.8.3 功能实现 389
21.9 本章小结 390
第22章 电子商务 391
22.1 需求分析 392
22.2 系统分析和设计 392
22.2.1 可行性分析 392
22.2.2 功能结构分析和设计 392
22.2.3 系统流程概述 393
22.2.4 开发环境 394
22.3 数据库设计 394
22.3.1 数据库的分析 395
22.3.2 创建数据库 395
22.3.3 创建数据表 395
22.3.4 数据表的结构 395
22.4 技术准备 398
22.4.1 代码书写规则 398
22.4.2 网站架设之初 398
22.4.3 文件管理规划 399
22.5 前台开发 399
22.5.1 设计分析 399
22.5.2 前台首页的实现 399
22.5.3 商品展示模块的实现 402
22.5.4 购物车的实现 405
22.5.5 收银台的实现 408
22.5.6 用户登录模块的实现 409
22.5.7 本站公告模块的实现 417
22.6 后台开发 418
22.6.1 设计分析 418
22.6.2 后台首页 418
22.6.3 后台登录模块 420
22.6.4 商品信息管理模块 422
22.6.5 短信管理模块 426
22.6.6 订单信息管理模块 428
22.7 电子商务完整清单 431
22.8 本章小结 432
第23章 播客 433
23.1 了解播客 434
23.1.1 播客起源 434
23.1.2 播客的发展前景 434
23.2 系统设计 435
23.2.1 系统功能概述 435
23.2.2 系统功能结构 435
23.2.3 系统流程概述 436
23.2.4 开发环境 437
23.2.5 文件夹组织结构 437
23.3 Adodb类库的安装配置 437
23.4 数据库设计 438
23.4.1 数据库的分析 438
23.4.2 创建数据库 438
23.4.3 创建数据表 438
23.5 前台开发 439
23.5.1 设计分析 439
23.5.2 在线播放功能的实现 440
23.5.3 最新推出功能的实现 448
23.5.4 上传视频文件功能的实现 450
23.5.5 视频下载功能的实现 452
23.5.6 创建播客个人主页 453
23.5.7 站内订阅 457
23.5.8 订阅管理 458
23.6 后台开发 462
23.6.1 设计分析 462
23.6.2 上传视频管理功能的实现 463
23.6.3 动态创建视频文件类型 465
23.6.4 管理员管理 466
23.7 本章小结 468
附录 实例快速检索 469