第1章 环境搭建 1
1.1 PHP开发环境和准备工作 2
1.2 Windows下Apache+MySQL+PHP的安装 2
1.2.1 安装Apache服务器 2
1.2.2 安装PHP 5 5
1.2.3 安装MySQL服务器 5
1.3 配置Apache服务器和PHP 5 9
1.4 在Windows下架设IIS+PHP的执行环境 10
1.5 在Linux下的安装配置 12
1.5.1 安装Apache服务器 12
1.5.2 安装MySQL服务器 13
1.5.3 安装PHP 5 14
1.5.4 启动/关闭服务器 15
1.6 在Windows下使用组合包 16
第2章 PHP基础 17
2.1 PHP变量 18
2.1.1 PHP变量 18
2.1.2 PHP预定义变量 19
2.2 流程控制语句 19
2.2.1 条件控制语句 19
2.2.2 循环控制语句 22
2.2.3 break和continue转移控制语句 26
2.3 Cookie和Session 27
2.3.1 Cookie管理 27
2.3.2 Session管理 31
2.3.3 Cookie与Session的比较 32
2.4 PHP数组 33
2.4.1 什么是数组 33
2.4.2 声明数组 33
2.4.3 遍历数组 34
2.4.4 字符串与数组的转换 35
2.4.5 统计数组元素个数 36
2.5 PHP的日期和时间 36
2.5.1 处理日期和时间 36
2.5.2 UNIX时间戳 40
2.5.3 系统时区设置 41
2.5.4 开发中遇到的日期和时间问题 41
2.6 PHP字符串 42
2.6.1 单引号和双引号的区别 42
2.6.2 字符串的连接符 43
2.6.3 字符串操作 44
2.7 PHP的文件 45
2.7.1 文件处理 45
2.7.2 文件上传 48
2.8 面向对象 48
2.8.1 面向对象的基本概念 48
2.8.2 PHP与对象 49
第3章 MySQL数据库基础 57
3.1 MySQL数据库 58
3.1.1 MySQL简介 58
3.1.2 MySQL的特点 58
3.1.3 启动MySQL服务器 58
3.1.4 连接和断开MySQL服务器 59
3.1.5 停止MySQL服务器 61
3.1.6 MySQL数据库的备份和恢复 62
3.2 使用MySQL命令行 63
3.2.1 MySQL数据库操作 63
3.2.2 MySQL数据表操作 64
3.2.3 MySQL语句操作 68
3.3 phpMyAdmin图形化管理工具 70
3.3.1 phpMyAdmin介绍 70
3.3.2 phpMyAdmin的安装和配置 70
3.3.3 操作数据库 72
3.3.4 操作数据表 74
3.3.5 使用SQL语句操作数据表 76
3.3.6 管理数据记录 78
3.3.7 生成和执行MySQL数据库脚本 80
第4章 Smarty模板 83
4.1 Smarty简介 84
4.1.1 什么是Smarty 84
4.1.2 Smarty与MVC 84
4.1.3 Smarty的特点 84
4.2 Smarty的安装配置 84
4.2.1 Smarty下载与安装 84
4.2.2 第一个Smarty程序 85
4.2.3 配置Smarty 86
4.3 Smarty模板设计 87
4.3.1 Smarty模板文件 87
4.3.2 注释 87
4.3.3 变量 87
4.3.4 修饰变量(variable modifers) 90
4.3.5 内置函数 91
4.4 Smarty程序设计 96
4.4.1 Smarty中的常用方法 96
4.4.2 Smarty的配置变量 97
4.4.3 Smarty缓存 98
4.5 Smarty应用 99
4.5.1 留言板首页 99
4.5.2 发表留言 101
4.5.3 查看留言 102
4.5.4 修改留言 104
第5章 注册及登录验证模块 107
5.1 注册及登录验证模块概述 108
5.1.1 用户注册流程 108
5.1.2 用户登录流程 108
5.1.3 找回密码流程 109
5.2 热点关键技术 109
5.2.1 防SQL注入技术 109
5.2.2 Ajax技术实现无刷新验证 109
5.2.3 验证码技术 111
5.2.4 E-mail激活技术 113
5.2.5 应用键盘响应事件验证信息是否合法 113
5.2.6 应用Cookie技术实现自动登录 115
5.3 注册及登录验证模块 116
5.3.1 数据库设计 116
5.3.2 数据库类 117
5.3.3 注册功能的实现 119
5.3.4 登录功能的实现 125
5.3.5 验证码的实现与刷新 129
5.3.6 找回密码的实现 130
5.4 程序调试 131
第6章 上传下载模块 133
6.1 上传下载模块概述 134
6.2 热点关键技术 134
6.2.1 php.ini配置文件 134
6.2.2 上传表单设置 135
6.2.3 预定义变量$_FILES 135
6.2.4 上传文件函数 136
6.2.5 多文件上传 137
6.2.6 文件下载 137
6.3 实现过程 138
6.3.1 数据库设计 139
6.3.2 文件上传功能的实现(包括多文件上传) 140
6.3.3 文件下载的实现 142
6.4 程序调试 145
第7章 分页显示模块 147
7.1 分页显示模块概述 148
7.2 热点关键技术 148
7.2.1 自定义函数替换超长文本中特殊字符 148
7.2.2 自定义函数控制超长文本的输出 149
7.2.3 连接数据库类的创建 149
7.2.4 分页类的创建 150
7.3 分页类模块 151
7.3.1 Smarty模板的安装和配置 152
7.3.2 ADODB的配置和连接 152
7.3.3 分页类模块的页面设计 153
7.3.4 分页类模块的程序开发 154
7.4 分页显示模块 155
7.4.1 PHP超长文本分页功能的实现 155
7.4.2 Ajax无刷新分页功能的实现 156
7.4.3 PHP跳转分页功能的实现 157
7.4.4 PHP上下分页功能的实现 160
7.5 程序调试 162
第8章 网站计数分析模块 163
8.1 网站计数分析模块概述 164
8.2 热点关键技术 164
8.2.1 防止重复计数 164
8.2.2 通过array_unique()函数获取网站当月IP访问量 166
8.2.3 将数组中的数据写入字符串中 167
8.3 简单数字计数器 167
8.4 图形数字计数器 170
8.5 GD2图形计数器 171
8.6 数据库数字计数器 172
8.7 Cookie计数器 174
8.8 Session无刷新计数器 175
8.9 网站计数器分析模块 175
8.9.1 计数器功能的实现 176
8.9.2 网站访问量统计分析 180
8.9.3 应用GD2函数动态创建折线图 182
8.10 程序调试 184
第9章 留言本模块 185
9.1 留言本模块概述 186
9.1.1 留言本概述 186
9.1.2 留言本的功能结构 186
9.1.3 留言本系统流程 187
9.2 热点关键技术 187
9.2.1 什么是敏感词 187
9.2.2 过滤敏感词 188
9.2.3 添加敏感词到文本文件中 189
9.2.4 读取文本文件中的敏感词 191
9.2.5 验证码在当前页验证 193
9.2.6 实现复选框的全选和反选 195
9.3 实现过程 196
9.3.1 MySQL数据库设计 198
9.3.2 定义数据库访问类 198
9.3.3 签写留言及过滤敏感词的实现 201
9.3.4 分页查看留言及版主信息回显的实现 203
9.3.5 检索留言及回复信息的实现 207
9.3.6 版主回复留言功能的实现 210
9.3.7 批量删除留言及回复信息的实现 213
9.3.8 版主悄悄话管理功能的实现 214
9.4 程序调试 215
第10章 搜索引擎模块 217
10.1 搜索引擎模块概述 218
10.1.1 搜索引擎定义 218
10.1.2 搜索引擎工作流程 218
10.2 热点关键技术 218
10.2.1 中文分词的概念 218
10.2.2 RMM分词技术 219
10.2.3 过滤标点符号 222
10.2.4 高亮显示查询关键词 224
10.2.5 搜索计时 226
10.2.6 截取中文字符串时屏蔽乱码 227
10.2.7 添加访问页到收藏夹 227
10.3 实现过程 228
10.3.1 RMM分词查询的实现 228
10.3.2 在查询结果中二次搜索功能的实现 232
10.3.3 高级搜索功能的实现 234
10.3.4 知名站点互联网查询功能的实现 239
10.4 程序调试 243
第11章 投票系统模块 245
11.1 投票系统模块概述 246
11.2 投票关键技术 246
11.2.1 动态生成投票主题及选项 246
11.2.2 通过3D饼形图分析投票结果 249
11.2.3 通过柱形图分析投票结果 250
11.2.4 Cooke投票限制 251
11.2.5 Session投票限制 252
11.2.6 通过IP限制重复投票 253
11.2.7 E-mail地址激活 254
11.3 简易投票系统 255
11.3.1 动态生成投票主题 256
11.3.2 动态添加投票选项内容 256
11.3.3 投票主题内容管理 258
11.3.4 投票功能的实现 259
11.4 复杂投票系统 261
11.4.1 数据库设计 262
11.4.2 用户注册 262
11.4.3 用户登录 264
11.4.4 投票主题浏览 265
11.4.5 投票内容提交 266
11.4.6 刷新投票结果 270
11.5 程序调试 271
第12章 购物车模块 273
12.1 购物车模块概述 274
12.1.1 购物车功能概述 274
12.1.2 购物车操作流程 274
12.2 热点关键技术 275
12.2.1 Smarty模板的安装配置 275
12.2.2 Smarty模板动静分离 276
12.2.3 Session购物车的创建 277
12.2.4 通过数组函数判断购物车是否存在指定商品 277
12.2.5 验证输入商品数量的值是否有效 278
12.3 实现过程 279
12.3.1 商品展示功能的实现 279
12.3.2 添加商品功能的实现 281
12.3.3 删除购物车中商品功能的实现 282
12.3.4 更改购物车中商品数量功能的实现 283
12.3.5 统计购物车中商品金额功能的实现 284
12.3.6 清空购物车中商品功能的实现 285
12.3.7 填写订单信息功能的实现 286
12.3.8 生成订单功能的实现 288
12.4 错误处理 289
第13章 在线支付模块 291
13.1 在线支付模块概述 292
13.2 热点关键技术 293
13.2.1 收货人信息验证 293
13.2.2 动态生成订单号 295
13.2.3 WebBrowser打印 296
13.2.4 工行支付 297
13.2.5 支付宝支付 298
13.3 实现过程 299
13.3.1 商品展示功能的实现 299
13.3.2 购物车功能的实现 301
13.3.3 订单打印和预览功能的实现 303
13.3.4 提交订单功能的实现 305
13.3.5 订单查询功能的实现 308
13.4 程序调试 309
第14章 聊天室模块 311
14.1 聊天室模块概述 312
14.2 热点关键技术 312
14.2.1 应用框架布局聊天室主页面 312
14.2.2 文件操作技术 314
14.2.3 定时刷新技术删除不发言用户 316
14.2.4 滚屏显示时滚动条定位技术 316
14.2.5 屏蔽刷新技术 317
14.2.6 监控客户端浏览器 319
14.3 聊天室模块 319
14.3.1 配置文件(config.php) 319
14.3.2 公共函数文件 320
14.3.3 用户登录验证 321
14.3.4 发言功能的实现 323
14.3.5 用户列表功能的实现 327
14.3.6 公共聊天功能和私聊功能的实现 329
14.3.7 自动删除掉线用户功能的实现 330
14.4 程序调试 331
第15章 论坛模块 333
15.1 论坛模块概述 334
15.1.1 系统功能描述 334
15.1.2 数据库设计 335
15.2 热点关键技术 336
15.2.1 树状导航菜单 337
15.2.2 帖子置顶 338
15.2.3 帖子引用 339
15.2.4 帖子收藏 340
15.2.5 屏蔽回贴 341
15.2.6 连接远程MySQL数据库 342
15.2.7 小纸条信息的无刷新输出 343
15.3 论坛模块设计 344
15.3.1 帖子发布功能的实现 344
15.3.2 帖子浏览功能的实现 347
15.3.3 帖子回复功能的实现 351
15.3.4 结帖功能的实现 354
15.3.5 站内搜索功能的实现 355
15.3.6 设置帖子类别 356
15.3.7 顶帖管理功能的实现 359
15.3.8 我的信息管理 360
15.3.9 我的好友管理 361
15.3.10 数据备份和恢复 362
15.4 程序调试 363
第16章 许愿墙模块 365
16.1 许愿墙模块概述 366
16.1.1 许愿墙的功能结构 366
16.1.2 许愿墙的系统流程 366
16.2 热点关键技术 366
16.2.1 DIV+CSS页面样式布局 366
16.2.2 实现可拖放DOM技术移动许愿字条 369
16.2.3 解决PHP与Ajax的中文乱码问题 371
16.2.4 对QQ号文本框禁止中文输入 372
16.2.5 分类选择心情图案 373
16.2.6 限制纸条内容的长度 374
16.2.7 在当前页验证校验码对与错 375
16.2.8 定义生成指定范围的许愿字条随机算法 377
16.2.9 解析IP获取用户所在城市 378
16.2.10 与许愿者通过QQ交谈 379
16.3 实现过程 380
16.3.1 MySQL数据库设计 380
16.3.2 签写许愿字条,并实现字条实时预览 381
16.3.3 签写许愿字条后,该字条置顶 385
16.3.4 单击指定字条时,该字条置上显示 386
16.3.5 双击许愿字条该字条置顶显示,并屏蔽整个页面 387
16.3.6 分米(按距离)显示许愿字条 388
16.3.7 搜索许愿字条、并将字条置顶亮显 395
16.3.8 许愿字条按福气值排行 397
16.3.9 应用Ajax无刷新技术为他人祈福 400
16.3.10 应用Ajax无刷新技术轮显最新10条许愿 401
16.3.11 应用Jpgraph图形类库实现3D饼形图表按地域统计分析许愿比率 403
16.3.12 应用柱形图按地域统计分析许愿人数及比例 409
16.3.13 爱墙列表、许愿字条高级搜索功能的实现 411
16.3.14 移动许愿字条 415
16.3.15 关闭许愿字条 415
16.4 程序调试 416
第17章 博客模块 419
17.1 博客概述 420
17.2 热点关键技术 420
17.2.1 MySQL中的时间与日期类型 420
17.2.2 数据库备份技术 421
17.2.3 在JavaScript中使用“Copy”命令 422
17.2.4 应用JavaScript对复选框进行操作 422
17.3 博客 423
17.3.1 数据库设计 423
17.3.2 配置文件及公共函数文件 426
17.3.3 博客空间个人首页的设计 426
17.3.4 我的文章功能的实现 429
17.3.5 文章浏览功能的实现 430
17.3.6 文章管理模块的实现 432
17.3.7 好友管理模块的实现 440
17.3.8 小纸条管理模块的实现 444
17.3.9 用户管理模块的实现 446
17.4 程序调试 450
第18章 网络象棋游戏模块 451
18.1 网络象棋游戏模块概述 452
18.1.1 象棋概述 452
18.1.2 布置棋盘 452
18.1.3 棋步规则 453
18.2 热点关键技术 453
18.2.1 什么是Ajax 453
18.2.2 Ajax的优点 453
18.2.3 屏蔽棋盘信息乱码 454
18.2.4 游戏的规则算法 455
18.2.5 30分钟不走棋自动退出游戏房间 461
18.3 实现过程 461
18.3.1 自动安装数据库 461
18.3.2 创建游戏房间 463
18.3.3 更改玩家名称 465
18.3.4 复制游戏网址给好友 466
18.3.5 象棋游戏模式 467
18.3.6 信息提示器 471
18.3.7 Ajax无刷新聊天功能 473
18.3.8 退出游戏房间 474
18.3.9 结束游戏 475
18.4 程序调试 475
第19章 短信发送模块 477
19.1 短信发送模块概述 478
19.2 热点关键技术 479
19.2.1 Web Service技术 479
19.2.2 Socket编程技术 479
19.2.3 手机号码的提取 480
19.2.4 批量添加手机号码 481
19.2.5 通过JavaScript验证提交手机号码格式 483
19.2.6 生日提醒 484
19.3 Socket编程发送短信 486
19.4 Web Service发送短信 487
19.4.1 数据库的设计 487
19.4.2 生日提醒功能的实现 488
19.4.3 常用短语提取功能的实现 490
19.4.4 Web Service发送短信功能的实现 491
19.5 程序调试 494
第20章 电子邮件模块 495
20.1 电子邮件模块概述 496
20.1.1 电子邮件简介 496
20.1.2 电子邮件基本原理 496
20.2 热点关键技术 497
20.2.1 SMTP服务器的安装和配置 497
20.2.2 POP3服务器的安装和配置 499
20.2.3 imap电子邮件系统函数的加载 500
20.2.4 无刷新获取邮件地址 502
20.2.5 无刷新删除邮件地址 504
20.2.6 Ajax无刷新统计邮件封数 504
20.3 电子邮件模块 505
20.3.1 登录邮件服务器功能的实现 505
20.3.2 发送邮件功能的实现 507
20.3.3 查看未读邮件功能的实现 510
20.3.4 接收邮件功能的实现 514
20.3.5 查看邮件内容功能的实现 516
20.3.6 下载附件功能的实现 518
20.3.7 删除邮件功能的实现 519
20.3.8 查找邮件功能的实现 520
20.4 程序调试 522
第21章 播客模块 523
21.1 播客模块概述 524
21.1.1 播客概述 524
21.1.2 播客起源 524
21.1.3 播客网站内容的分类 524
21.1.4 播客的发展前景 524
21.1.5 播客模块功能结构 525
21.2 热点关键技术 526
21.2.1 Smarty中的URL编码 526
21.2.2 控制播放器窗口状态 527
21.2.3 Ajax无刷新评论 528
21.2.4 生成RSS订阅文件 529
21.2.5 更多相关视频搜索 531
21.3 播客模块 532
21.3.1 播客的数据库 532
21.3.2 在线播放功能的实现 533
21.3.3 热播排行功能的实现 536
21.3.4 视频下载功能的实现 538
21.3.5 创建播客个人主页 539
21.3.6 上传视频文件功能的实现 543
21.3.7 站内订阅 545
21.3.8 订阅管理 546
21.3.9 动态创建视频文件类型 549
21.3.10 上传视频管理功能的实现 550
21.4 程序调试 552
第22章 在线音乐模块 555
22.1 在线音乐模块概述 556
22.2 热点关键技术 557
22.2.1 embed标签 557
22.2.2 object标签 557
22.2.3 歌词同步技术 558
22.2.4 创建.m3u格式的文件 560
22.2.5 Ajax无刷新删除.m3u格式的文件 561
22.2.6 应用JavaScript实现全选、反选和不选的功能 562
22.3 实现过程 563
22.3.1 通过ADODB连接MySQL数据库 563
22.3.2 上传音频文件功能的实现 565
22.3.3 在线试听功能的实现 568
22.3.4 循环和连续播放音乐功能的实现 569
22.3.5 播放列表功能的实现 573
22.3.6 音乐下载功能的实现 574
22.3.7 收藏和播放其他网站的音乐 575
22.3.8 站内搜索功能的实现 576
22.3.9 管理员权限设置 579
22.4 程序调试 581
第23章 电子相册模块 583
23.1 电子相册模块概述 584
23.2 热点关键技术 584
23.2.1 CSS滤镜技术 584
23.2.2 获取上传图片信息 587
23.2.3 缩略图技术 588
23.2.4 使用GD库技术向图片中添加文字 591
23.2.5 应用Javascript中的定位技术实现层拖动 592
23.3 实现过程 594
23.3.1 数据库设计 594
23.3.2 公共函数和文件 595
23.3.3 相册类别管理 596
23.3.4 相册列表的实现 600
23.3.5 图片浏览功能的实现 602
23.3.6 修改图片功能的实现 608
23.3.7 制作影集功能的实现 612
23.3.8 欣赏影集功能的实现 617
23.4 程序调试 620
第24章 RSS阅读器模块 621
24.1 RSS阅读器模块概述 622
24.1.1 RSS概述 622
24.1.2 RSS历史 622
24.1.3 RSS 2.0的元素 622
24.1.4 RSS的发展趋势 624
24.2 热点关键技术 624
24.2.1 创建RSS文件 624
24.2.2 判断指定的文件是否存在 626
24.2.3 自动获取剪贴版中的内容 627
24.2.4 树状导航菜单输出频道组和频道 628
24.2.5 Ajax无刷新读取订阅信息 629
24.2.6 通过html_options函数为下拉列表赋值 630
24.3 RSS阅读器 631
24.3.1 添加频道组功能的实现 631
24.3.2 添加频道功能的实现 633
24.3.3 动态输出频道组和频道的内容 635
24.4 创建支持RSS阅读的站点 636
24.4.1 创建支持RSS阅读的站点 636
24.4.2 动态创建RSS文件 637
24.5 程序调试 639
第25章 天气预报模块 641
25.1 天气预报模块概述 642
25.1.1 天气预报概述 642
25.1.2 天气预报时效分类 642
25.1.3 天气预报的发展 642
25.1.4 天气预报的常用符号 643
25.1.5 天气预报的各项功能 644
25.2 热点关键技术 644
25.2.1 XML技术 644
25.2.2 应用IFRAME浮动框架标记访问问天网数据 646
25.2.3 应用数组遍历全国各大城市名称 647
25.2.4 将获取的天气预报信息写入XML文件中 651
25.3 应用Iframe框架直接获取问天网天气预报 653
25.4 查询各城市未来5天的天气预报、指数预报 653
25.5 获取中国气象局未来72小时城市天气预报 655
25.6 程序调试 660
第26章 网站发布 663
26.1 域名注册 664
26.1.1 域名的命名规则 664
26.1.2 域名的分类 664
26.1.3 注册付费域名 665
26.1.4 注册免费域名 665
26.2 注册虚拟主机 666
26.2.1 什么是虚拟主机 666
26.2.2 注册付费虚拟主机 666
26.2.3 注册免费虚拟主机 667
26.3 发布网站到个人服务器 667
26.4 发布网站到FTP服务器 668