
本书由浅入深地讲解了PHP的各项知识。主要包括PHP的常量与变量、运算符与表达式、流程控制、函数、数据处理、文件应用、主机信息、图像处理、Session与Cookie、正则表达式的使用、面向对象编程、MySQL数据库知识。另外,本书还精选了多个常用模块,分别是计数器程序、网上投票系统、留言板程序、简单的BBS系统、博客程序、网上商城系统。实例结合实际功能需要,符合系统设计要求,并且都是当前流行的应用系统。
本书适合希望从事或正在从事PHP+MySQL系统开发的人员阅读、借鉴和参考,同时也适合各类学校作为教材使用。另外,它还是学生毕业设计的好参考书。
前 言
在这个数字化时代,全世界有千千万万个网站昼夜不停地提供服务。PHP+MySQL这一对Web应用开发的利器,在从电子商务到网络办公,从邮件服务(例如eYou)到大型综合网站(例如Yahoo!)的广泛应用,都显示了其强大的功能。对于从事Web应用开发的从业人员或想进入该领域的未来精英而言,掌握PHP+MySQL技术是必需的技能。
为帮助Web应用从业者快速掌握PHP+MySQL开发技术,笔者精心编著了本书。本书遵循由浅入深,循序渐进的学习规律,充分考虑语言学习的特点,紧密结合开发实例,体系完整地介绍了PHP网络程序开发技术。
本书特色
1.笔者多年从事PHP编程,深知一个初学者在学习PHP这门技术中会遇到哪些实际问题。笔者通过本书总结出了初学者在学习PHP时经常出现的问题,并对这些问题一一做了解答。这样的做法会使初学者少走不少弯路。
2.本书是一本基础性书籍,由浅入深地对PHP作了全面讲解,涉及PHP常用的函数及功能,对每个函数及功能都给出了实例,非常便于操作。
3.在本书的后半部分讲解了PHP中常用的模块实例,内容包括计数器程序、网上投票系统、留言板程序、简单的BBS系统、博客程序及网上商城系统几个部分。实例结合实际功能需要,符合系统设计要求,并且均是网上流行的应用系统。
4.本书内所列举的代码,不论是只有几行的小程序或是有上千行的大型程序都经过了严格的调试运行,都是可以正常运行的。
5.配多媒体视频演示光盘,让读者快速入门。
本书内容
本书共分为4篇。其中第1篇PHP基础,包括第1~2章;第2篇PHP核心技术,包括第3~15章;第3篇PHP常用模块,包括第16~19章;第4篇PHP综合应用实例,包括第20~21章。
第1章介绍PHP基本知识。通过本章,读者可以了解静态网页和动态网页的区别、什么是PHP及PHP的发展和特点。本章最后通过一个实例,让读者对PHP有一个基本的认识。
第2章介绍如何构建PHP开发环境。内容包括服务器Apache、PHP解释器、数据库服务器MySQL和管理器及代码编辑器EditPlus的安装和配置。
第3章介绍PHP常量和变量。通过本章,读者可以学习PHP中常量和变量的使用。本章还着重介绍数组的使用。
第4章介绍PHP运算符和表达式。通过本章,读者可以学习PHP中各种运算符的使用和表达式的创建。
第5章介绍PHP的流程控制语句。这些语句包括判断语句if...else、while、do...while及for循环语句。
第6章介绍PHP函数的使用。内容包括函数的构成、定义、调用和递归。
第7章介绍PHP数据的处理。内容包括数据类型的判断、数学函数的应用、字符串的处理和数组的处理等。
第8章介绍PHP文件和目录操作。内容包括文件的打开、读取、删除和目录的创建、删除。本章最后还介绍文件操作应用实例——在线相册系统的实现方法。
第9章介绍主机信息的获取。内容包括浏览器、IP、时间信息的获取和处理。
第10章介绍PHP的图像处理。内容包括图像函数的使用、图片水印的生成、直方图的绘制、缩略图的生成等。
第11章介绍Session和Cookie的处理。通过本章学习,读者可以掌握Session和Cookie的定义和使用,并且掌握网页风格变换的实现方法。
第12章介绍正则表达式的使用。内容包括POSIX和Perl正则表达式的构建和应用。本章最后还将介绍E-mail校验和UBB中正则表达式的应用。
第13章介绍PHP面向对象编程的基础知识。内容包括类的封装、继承、重载和类相关函数的使用。
第14章介绍MySQL数据库的使用。内容包括MySQL的使用、SQL语句的使用。本章最后通过一个学生档案系统,介绍MySQL使用流程。
第15章介绍PHP中人机交互的实现。内容包括表单数据的处理和URL值传递的处理。
第16章介绍计数器的实现。通过本章,读者可以掌握简单计数器、图形计数器、多用户计数器的实现方法。
第17章介绍网上投票系统的实现。该系统实现投票的管理、投票统计等功能,并对防止重复投票做专门的讲解。
第18章介绍留言板系统的实现。该系统实现留言数据的文件保存、前台留言和后台管理功能。
第19章介绍博客系统的实现。该系统实现用户登录和注册、日志添加和修改、留言管理等功能。
第20章介绍BBS系统的实现。该系统实现BBS的常用功能,如用户注册和登录、主题的显示和回复、论坛分类的管理、帖子的管理和用户管理。
第21章介绍网上商城系统的实现。该系统功能包括用户注册和登录、商品的分类、搜索和显示以及后台管理等功能。
读者对象
? 网站开发者和网页设计人员;
? 高等院校的老师和学生;
? 相关培训机构的老师和学员;
? 毕业设计的学生;
? 以前使用ASP或者JSP,现在转为PHP的开发人员。
本书作者
本书由强锋科技统筹,由陈营辉主笔编写。其他参与编写、资料整理和光盘制作的人员有王龙、王拥东、吴善才、徐砚颖、尹健慧、詹涵林、张薇、张小强、张运端、赵玉荣、郑慧、朱博、朱朝坤、邹小红、陈强、陈燕、丁凤霞、丁礼友、范忠诚、黄俊灿、贾伟、李喜彤、林垚、尚文谊、孙亮亮、唐崇敏、陶则熙等。在此对大家的辛勤工作表示感谢!
技术支持
为方便读者学习本书,笔者为本书专门建立了专有论坛:http://www.douban.com/group/32096/,读者可在此讨论书中或其他相关技术问题。
编著者
2007年5月
目 录
第1篇 PHP基础
第1章 初识PHP 3
1.1 关于静态网页与动态网页 4
1.1.1 传统的静态网页HTML 4
1.1.2 动态网页与传统网页的区别 4
1.2 关于PHP 5
1.2.1 什么是PHP 5
1.2.2 PHP的发展历史 5
1.2.3 PHP与其他CGI程序相比较 6
1.3 第1个程序——HELLO WORLD! 6
1.3.1 在页面中加入PHP代码 7
1.3.2 在PHP页中加入注释 8
1.3.3 文件的引用 8
1.4 本章小结 9
第2章 PHP的开发环境及安装 11
2.1 Windows平台下Apache的安装 12
2.2 PHP解释器的安装 14
2.3 MySQL的安装 15
2.3.1 MySQL的安装 15
2.3.2 MySQL的配置 16
2.3.3 修改php.ini以支持MySQL 17
2.4 安装phpMyAdmin 17
2.5 EditPlus的安装 18
2.6 本章小结 19
第2篇 PHP核心技术
第3章 PHP中的常量与变量 23
3.1 PHP中常量的定义与使用 24
3.1.1 定义使用常量 24
3.1.2 PHP中的预定义常量 25
3.2 PHP中的变量 26
3.2.1 PHP的变量类型 26
3.2.2 转换变量类型 27
3.2.3 变量的使用范围 28
3.3 PHP的预定义变量 28
3.4 PHP中的数组型变量 29
3.4.1 数组变量的初始化 29
3.4.2 获取数组中的元素 30
3.4.3 给数组动态增加元素 31
3.4.4 创建多维数组 32
3.5 本章小结 34
第4章 PHP中的运算符与表达式 35
4.1 运算符 36
4.1.1 四则运算符 36
4.1.2 逻辑运算符 36
4.1.3 三目运算符 37
4.1.4 运算符的优先级 38
4.2 表达式 40
4.2.1 表达式中变量的可能值 40
4.2.2 赋值表达式的值 40
4.2.3 递增表达式 41
4.2.4 比较表达式 41
4.2.5 组合的运算赋值表达式 42
4.3 运算符与表达式综合运用实例 42
4.4 本章小结 43
第5章 PHP中的流程控制 45
5.1 if…else判断 46
5.1.1 简单的if判断 46
5.1.2 if…else判断 47
5.1.3 if…else…else多重判断 47
5.2 switch…case多重判断 49
5.3 while循环 50
5.3.1 单纯while判断循环 50
5.3.2 使用break跳出循环 51
5.3.3 使用continue语句 52
5.4 do…while循环 53
5.5 for循环 54
5.6 流程控制综合运用实例 55
5.7 本章小结 56
第6章 PHP中的函数 57
6.1 什么是函数 58
6.2 函数的参数 59
6.3 函数的返回值 61
6.4 PHP内部函数的使用 63
6.5 PHP加载外部函数 64
6.6 自定义函数 66
6.6.1 如何自定义函数 66
6.6.2 使用自定义函数 67
6.6.3 函数的动态调用 68
6.6.4 函数的递归 69
6.7 本章小结 70
第7章 PHP的数据处理 71
7.1 怎样判断数据类型 72
7.2 PHP中常用的数学函数 74
7.2.1 数学计算函数 74
7.2.2 数学三角函数 76
7.2.3 很有用的最值函数 78
7.2.4 产生随机数函数 80
7.2.5 进制转换函数 81
7.2.6 其他数学函数 84
7.3 PHP中常用的字符串函数 85
7.3.1 取得字符串长度 85
7.3.2 输出字符串 86
7.3.3 截取字符串 88
7.3.4 按特定字符切开字符串 89
7.3.5 去除字符串中的特殊符号 91
7.3.6 转换字符串中的特殊符号为HTML标记 92
7.3.7 加入去掉斜线 93
7.3.8 两个字符串的比较 93
7.3.9 改变字符串的大小写 95
7.3.10 其他常用字符串函数 96
7.4 PHP中常用的数组函数 96
7.4.1 新建一个数组 97
7.4.2 计算数组的元素个数 98
7.4.3 对数组排序及逆排序 99
7.4.4 对数组进行自定义排序 101
7.4.5 移动数组指针 103
7.4.6 获取数组当前元素 104
7.4.7 移去数组中重复的值 104
7.4.8 计算数组中所有值出现的次数 105
7.4.9 合并多个数组 107
7.4.10 其他常用数组函数 109
7.5 本章小结 109
第8章 PHP文件应用 111
8.1 判断文件是否存在 112
8.2 访问文件属性 112
8.3 打开文件 114
8.3.1 用只读方式打开文件 114
8.3.2 用写入方式打开文件 114
8.3.3 用读写方式打开文件 115
8.4 读取文件内容 116
8.4.1 读取文件相应字符 116
8.4.2 按行返回文件内容 117
8.4.3 按行返回文件内容去除HTML标记 118
8.4.4 将整个文件内容读入到数组变量中 119
8.5 删除文件 120
8.6 创建 120
8.7 删除 121
8.8 浏览下的文件 122
8.9 关于文件上传 123
8.10 文件操作综合实例:在线相册 126
8.10.1 系统功能 126
8.10.2 相册系统首页面 126
8.10.3 相册系统上传前台页面 128
8.10.4 相册系统上传后台页面 130
8.10.5 相册系统浏览图片详细信息页面 131
8.10.6 相册系统图片删除页面 132
8.10.7 测试相册系统 134
8.11 本章小结 137
第9章 用PHP获取主机信息 139
9.1 phpinfo()的使用 140
9.2 浏览器相关操作 140
9.2.1 获取访问者浏览器信息 141
9.2.2 获取访问者的IP地址 142
9.3 日期时间相关函数 142
9.3.1 检查日期的合法性 142
9.3.2 格式化输出当前日期 143
9.3.3 获得时间及日期信息 145
9.4 本章小结 146
第10章 PHP中的图像处理 147
10.1 图像函数 148
10.1.1 访问图像的属性 148
10.1.2 使用GD库函数 149
10.2 图像使用实战 154
10.2.1 使用GD库函数创建图像 154
10.2.2 创建图形并在上面画图 155
10.2.3 绘制几何图形更多的探索 156
10.2.4 使用GD库函数在图片上写字 158
10.2.5 使用GD库函数绘制直方统计图 159
10.2.6 用GD库函数创建图像的缩略图 161
10.3 本章小结 162
第11章 PHP中的Session与Cookie 163
11.1 Session的使用 164
11.1.1 如何使用Session 164
11.1.2 Session使用实例 166
11.1.3 使用Session的注意事项 166
11.2 Cookie的使用 167
11.2.1 为什么使用Cookie 167
11.2.2 怎样使用Cookie 168
11.2.3 设置Cookie生命期 169
11.2.4 Cookie综合应用实例——网页风格转换 170
11.3 本章小结 176
第12章 PHP中正则表达式的使用 177
12.1 关于正则表达式 178
12.1.1 什么是正则表达式 178
12.1.2 如何使用模式匹配 180
12.2 POSIX扩展的正则表达式函数 183
12.2.1 替换字符串 183
12.2.2 匹配字符串 185
12.2.3 替换字符串(忽略大小写) 187
12.2.4 匹配字符串(忽略大小写) 187
12.2.5 分割字符串到数组 188
12.2.6 分割字符串到数组(忽略大小写) 190
12.2.7 返回包含指定字符的正则表达式 191
12.3 Perl兼容的正则表达式函数 192
12.3.1 Perl兼容正则表达式的使用规范 192
12.3.2 返回匹配数组 193
12.3.3 全局表达式匹配 194
12.3.4 正则表达式匹配 196
12.3.5 转义正则表达式字符 197
12.3.6 用回调函数实现正则表达式的搜索与替换 198
12.3.7 执行正则表达式的搜索与替换 199
12.3.8 用正则表达式分割字符串 201
12.4 正则表达式使用实例 202
12.4.1 构造检查E-mail的正则表达式 202
12.4.2 对图像UBB代码进行替换 203
12.5 本章小结 205
第13章 PHP面向对象编程 207
13.1 面向对象编程(OOP)基础 208
13.1.1 什么是类(class) 208
13.1.2 为什么要用到类 209
13.2 在PHP中创建和使用类 209
13.2.1 自建类——类的封装 209
13.2.2 为类添加属性 212
13.2.3 为类添加方法 213
13.2.4 类的继承 215
13.2.5 类的重载 216
13.2.6 类的引用 218
13.2.7 类的构造函数 219
13.3 PHP中与类、对象相关的函数 220
13.4 类的具体使用实例 230
13.5 本章小结 232
第14章 使用MySQL数据库 233
14.1 关系型数据库基础 234
14.1.1 什么是关系型数据库 234
14.1.2 关系型数据库的功能 234
14.2 PHP中与MySQL数据库相关的函数 234
14.3 数据库操作 242
14.3.1 连接MySQL服务器 242
14.3.2 连接到服务器并显示可用数据库 243
14.3.3 在服务器上创建新的数据库 244
14.3.4 在选定数据库里创建表 245
14.3.5 如何删除已经存在的库和表 247
14.4 对MySQL表进行操作 250
14.4.1 执行INSERT INTO语句插入记录 250
14.4.2 执行SELECT查询 252
14.4.3 使用表单扩展添加记录功能 253
14.4.4 执行UPDATE语句更新记录 256
14.4.5 使用表单扩展更改记录功能 258
14.4.6 执行DELETE语句删除记录 262
14.4.7 执行ALTER TABLE语句改变表的结构 263
14.5 对MySQL表的高级查询 265
14.5.1 使用WHERE子句 265
14.5.2 使用LIMIT子句对结果进行分页显示 267
14.5.3 使用ORDER BY对查询结果进行排序 269
14.6 MySQL数据库使用实例 271
14.6.1 明确设计目的——学生档案管理 271
14.6.2 连接MySQL服务器建立学生档案表 272
14.6.3 显示学生数据页的创建 272
14.6.4 添加记录页的创建 275
14.6.5 修改记录页的创建 278
14.6.6 查找记录页的创建 281
14.6.7 学生档案管理系统实际使用 284
14.7 本章小结 286
第15章 用PHP实现人机交互 287
15.1 用表单实现人机互动 288
15.1.1 表单元素的组成 288
15.1.2 在普通Web页中插入表单 290
15.1.3 更改表单的ACTION属性到PHP程序 293
15.1.4 表单METHOD属性POST与GET区别 293
15.1.5 用PHP作后台处理表单提交数据 293
15.2 URL参数与PHP 296
15.2.1 在PHP的URL地址上加入参数 296
15.2.2 用PHP处理提交的参数 296
15.3 表单使用实例 298
15.4 本章小结 302
第3篇 PHP常用模块
第16章 计数器程序 305
16.1 简单计数器 306
16.1.1 计数器的原理 306
16.1.2 设计算法 306
16.1.3 代码实现 306
16.2 图形化计数器 307
16.2.1 设计算法 307
16.2.2 用图片替代文本 307
16.2.3 代码实现 308
16.3 添加“防止恶意刷新”功能 309
16.3.1 设计算法 309
16.3.2 代码实现 309
16.4 多用户计数器 310
16.4.1 多用户的原理 310
16.4.2 实现方法 311
16.4.3 代码实现 311
16.5 本章小结 312
第17章 网上投票程序 313
17.1 投票程序的原理 314
17.2 本实例的特点 314
17.3 投票实例数据表的设计 314
17.4 代码实现 315
17.4.1 准备工作 316
17.4.2 创建显示所有投票项的页面 317
17.4.3 创建添加投票记录页面 318
17.4.4 创建删除投票项的页面 322
17.4.5 创建显示投票项页面 323
17.4.6 创建选择项提交处理页面 326
17.5 测试程序 327
17.6 如何防止重复投票 330
17.7 本章小结 331
第18章 文本留言板程序 333
18.1 留言板分类 334
18.1.1 文本型留言板 334
18.1.2 数据库型留言板 334
18.2 文本留言板的实现原理 335
18.3 文本留言板实例的组成 336
18.4 文本留言板代码的实现 336
18.4.1 配置文件的建立 336
18.4.2 显示提交留言文件建立 337
18.4.3 管理入口页的创建 341
18.4.4 修改留言页面的创建 343
18.4.5 删除留言页面的创建 345
18.5 调试运行留言板 347
18.6 进一步完善 349
18.7 本章小结 349
第19章 PHP博客程序 351
19.1 什么是博客 352
19.2 简单博客程序的功能 352
19.3 制作前的准备工作 352
19.3.1 配置文件的创建 353
19.3.2 安装文件的创建 353
19.3.3 头文件的创建 357
19.3.4 侧边文件的创建 358
19.4 日志显示模块 361
19.4.1 主显示页面的创建 361
19.4.2 日志显示页面的创建 363
19.4.3 单条日志详细信息页面的创建 367
19.5 管理模块 370
19.5.1 管理员/用户登录页面 370
19.5.2 更改用户注册信息 373
19.5.3 更改注册用户密码页面 376
19.5.4 修改已经存在的日志类别 379
19.5.5 签写新的日志页面 381
19.5.6 已经存在的日志管理页 384
19.5.7 留言的管理 387
19.5.8 注册用户的管理 389
19.5.9 添加新类别页面 391
19.5.10 留言显示与发表页面 393
19.5.11 新用户注册页面 396
19.5.12 用户退出登录页面 400
19.6 进一步完善 400
19.7 关于RSS内容聚合 401
19.8 本章小结 402
第4篇 PHP综合应用实例
第20章 简单的BBS系统 405
20.1 设计数据库表 406
20.1.1 用户数据表的设计 406
20.1.2 论坛分类数据表的设计 407
20.1.3 贴子数据表的设计 408
20.2 准备工作 408
20.2.1 配置文件的创建 409
20.2.2 安装文件的创建 409
20.3 用户注册与登录 416
20.3.1 用户注册页 416
20.3.2 注册的后台处理 420
20.3.3 用户登录页面 422
20.3.4 登录出错及处理 425
20.4 论坛首页、主论坛、分论坛显示文件的创建 426
20.4.1 论坛首页显示文件的创建 426
20.4.2 主论坛显示文件的创建 430
20.4.3 分论坛显示文件的创建 432
20.5 主题的显示与回复 435
20.5.1 发表新的主题 435
20.5.2 现有主题的显示 438
20.5.3 主题的回复 441
20.6 论坛分类的管理 442
20.6.1 为论坛增加新的类别 442
20.6.2 更改现有类别 446
20.7 贴子的管理 450
20.7.1 编辑贴子 450
20.7.2 删除贴子 455
20.7.3 防掘墓功能 457
20.8 用户管理 458
20.8.1 用户信息的显示 459
20.8.2 普通信息的修改 461
20.8.3 用户密码的修改 465
20.8.4 用户退出页面 468
20.9 进一步完善 470
20.10 本章小结 471
第21章 网上商城全站系统 473
21.1 系统分析 474
21.2 设计数据库表结构 474
21.2.1 用户表的设计 474
21.2.2 图书类型表的设计 475
21.2.3 图书记录表的设计 475
21.2.4 订单记录表的设计 476
21.2.5 销售记录表的设计 476
21.3 准备工作 477
21.3.1 配置文件的创建 477
21.3.2 安装文件的创建 477
21.3.3 头文件的创建 482
21.4 用户的注册与登录 483
21.4.1 用户注册 483
21.4.2 用户登录 486
21.5 前台显示界面 490
21.5.1 首页面的实现 490
21.5.2 图书列表页面的实现 495
21.5.3 按种类查看页面 496
21.5.4 搜索图书页面 499
21.5.5 查看图书详情页面 502
21.6 购物车的实现 505
21.6.1 查看当前购物车 505
21.6.2 查看用户历史订单 508
21.7 管理功能的实现 510
21.7.1 更改用户信息 510
21.7.2 更改用户密码 512
21.7.3 为图书添加新的分类 515
21.7.4 修改已经存在的分类 518
21.7.5 增加新的图书 522
21.7.6 修改已有图书 527
21.7.7 查看、处理所有未处理订单 533
21.7.8 销售记录的查看 535
21.7.9 当前登录用户退出页面 537
21.8 本章小结 537