本书从Adobe Dreamweaver CS6可视化设计与手工编码的结合上详细地介绍了基于PHP语言和MySQL数据库的动态网站开发技术。本书采用项目引领、任务驱动的教学方法,共分10个项目,包括:配置PHP开发环境、PHP语言快速入门、PHP面向对象编程、PHP数据处理、PHP与Web交互、PHP文件处理、PHP图像处理、MySQL数据库管理、PHP数据库编程、新闻发布系统设计。
随着计算机网络技术的迅猛发展和日益普及,计算机程序设计的重点已经从传统的桌面程序设计转移到Web应用程序设计,各种动态网站开发正在受到越来越多的关注。在各种动态网站开发技术中,Apache+MySQL+PHP组合以其开源性和跨平台性而著称,被誉为黄金组合并得到广泛应用。本书从Dreamweaver CS6可视化设计与手工编码的结合上详细地讲述了基于Apache服务器、PHP语言及MySQL数据库的动态网站开发技术。
传统的PHP动态网站开发通常都是采用手写代码方式来进行的,这种编程模式不仅效率低,而且代码不规范,难以调试,无法满足企业应用的实际需要。Adobe Dreamweaver CS6对PHP技术提供了很好的支持,使用它不仅可以方便快捷地进行Web页面设计,而且很容易创建数据库连接,并在同一站点的所有PHP页中使用;通过HTML 5新功能和各种Spry表单验证控件可以对提交的表单数据进行有效性检查,或者通过可视化操作可以快速生成记录集并分页显示数据库记录,添加记录集导航条和记录集计数器;通过各种功能强大的服务器行为可以快速生成具有查询记录、添加记录、更新记录和删除记录的PHP数据访问页,也可以快速生成具有用户注册、登录及限制访问等功能的PHP动态网页。本书从可视化编辑与手工编码的结合上讲述使用Adobe Dreamweaver CS6开发基于PHP技术和MySQL数据库的动态网站,既可以通过各种可视化设计工具提高开发效率,也可以通过手工编码灵活控制程序的执行流程。
本书根据教育部颁布的《中等职业学校专业教学标准(试行)信息技术类(第一辑)》中的相关教学内容和要求编写。本书结合现代职业教育的特点和社会用人需求,采用项目引领和任务驱动的教学方法,通过大量的实战演练详细地讲述了PHP动态网站开发技术及其应用。在编写过程中,坚持以就业为导向、以能力为本位的原则,力求突出教材的实用性、适用性和先进性。
本书共10个项目,详细地讲述了使用PHP技术开发动态网站的基本知识和设计技巧。项目1介绍用于PHP开发的各个组件并通过phpStudy套件部署PHP开发环境;项目2讲述PHP语言的基础性内容,包括PHP基本知识、数据类型、变量与常量、运算符与表达式、流程控制语句及函数;项目3介绍PHP面向对象编程方面的内容;项目4讲述PHP数据处理,包括字符串、日期/时间及数组处理;项目5讨论如何构建PHP交互网页,内容包括获取表单变量、表单验证、获取URL参数、页面跳转、会话管理及Cookie应用;项目6讨论了如何通过PHP代码进行文件操作、目录操作和文件上传;项目7讲述PHP图像处理方面的内容,包括配置GD库、图像基本操作、绘制基本图形及在图像中写入文本;项目8介绍MySQL数据库管理方面的内容,包括MySQL应用基础、创建和维护数据库、创建和维护表、数据查询与操作、其他数据库对象及安全性管理;项目9介绍如何通过PHP访问MySQL数据库,首先介绍如何创建数据库连接,然后介绍如何通过编程方式或Dreamweaver服务器行为实现PHP数据访问功能,包括查询记录、添加记录、更新记录和删除记录;作为前面各个项目技能的综合应用,项目10给出一个新闻发布系统项目的完整开发过程,首先介绍系统功能分析、数据库设计与创建和PHP动态站点的构建,然后讲解网站导航条的制作和各个系统功能模块的实现。
本书中的所有源代码均在Apache 2.4.23 Web服务器上测试通过,所用操作系统平台为Windows 7旗舰版Service Pack 1,Web编程语言为PHP 5.4.45,PHP动态网站开发工具为Dreamweaver CS6,后台数据库服务器为MySQL 5.5.53,MySQL管理工具为MySQL Front5.3等。
本书中用到的一些人名、电话号码和电子邮件地址均属虚构,如有雷同,实属巧合。
本书由赵增敏主编。参加本书编写、资料收集、代码测试和文字录入排版的还有朱粹丹、赵朱曦、余霞、卢捷、郭宏、吴洁、彭辉、王庆建、连静、李娴、王静、刘颖、赵玉霞等。
由于作者水平所限,书中疏漏和错误之处在所难免,欢迎广大读者提出宝贵意见。
为了方便教师教学,本书还配有教学指南、电子教案和习题答案(电子版)。请有此需要的教师登录华信教育网(www.huaxin.edu.cn或www.hxedu.com.cn)免费注册后进行下载,有问题时请在网站留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn)。
本教材主编赵增敏为河南信息工程学校教授,河南省中等职业教育学科带头人,河南省教育厅学术带头人,长期从事数据库应用开发、Visual Basic/Visual C#可视化编程、HTML网页设计、移动网页设计、JavaScript/jQuery动态网页编程、ASP/PHP/JSP/ASP.NET动态网站开发、Web应用开发等方面的教学与研究,有丰富的计算机教学经验和教材开发编写经验,迄今为止撰写了数十种计算机专著及教材,其中有多本国家规划教材,还有版权输出到台湾出版繁体中文版,被电子工业出版社授予优秀作者称号。
项目1 配置PHP开发环境1
任务1.1 安装phpStudy1
1.1.1 PHP开发环境的组成2
1.1.2 phpStudy的安装5
任务1.2 配置phpStudy7
1.2.1 设置phpStudy运行模式7
1.2.2 切换PHP版本8
1.2.3 站点域名管理9
1.2.4 创建虚拟目录9
1.2.5 配置MySQL服务器10
任务1.3 创建PHP MySQL站点13
1.3.1 设置PHP MySQL站点13
1.3.2 创建PHP动态网页15
项目思考17
项目实训18
项目2 PHP语言快速入门19
任务2.1 了解PHP基本知识19
2.1.1 PHP动态网页的组成20
2.1.2 创建PHP代码块20
2.1.3 编写PHP注释22
2.1.4 PHP与HTML混合编写22
2.1.5 PHP与JavaScript协同工作23
任务2.2 使用PHP数据类型24
2.2.1 使用整型数25
2.2.2 使用浮点数25
2.2.3 使用字符串25
2.2.4 使用布尔型27
2.2.5 使用特殊类型27
2.2.6 数据类型转换28
任务2.3 使用变量与常量30
2.3.1 定义变量30
2.3.2 检查变量是否被设置31
2.3.3 可变变量与变量引用33
2.3.4 使用常量34
任务2.4 使用运算符与表达式36
2.4.1 使用算术运算符36
2.4.2 使用赋值运算符37
2.4.3 使用递增/递减运算符38
2.4.4 使用字符串运算符39
2.4.5 使用位运算符39
2.4.6 使用比较运算符40
2.4.7 使用条件运算符40
2.4.8 使用逻辑运算符42
2.4.9 使用表达式43
2.4.10 运算符优先级43
任务2.5 使用流程控制语句44
2.5.1 使用选择语句44
2.5.2 使用循环语句47
2.5.3 使用跳转语句50
2.5.4 包含文件语句51
任务2.6 使用函数54
2.6.1 了解PHP内部函数54
2.6.2 使用自定义函数56
2.6.3 传递函数的参数58
2.6.4 设置函数的返回值60
2.6.5 使用变量作用域61
2.6.6 使用可变函数62
2.6.7 使用匿名函数63
项目思考64
项目实训65
项目3 PHP面向对象编程66
任务3.1 使用类和对象66
3.1.1 创建类和对象67
3.1.2 为类添加成员68
3.1.3 为类添加构造方法和析构方法70
3.1.4 为类添加静态成员71
3.1.5 自动加载对象73
3.1.6 迭代对象74
3.1.7 克隆对象75
3.1.8 比较对象76
任务3.2 实现继承与多态78
3.2.1 实现类的继承78
3.2.2 使用抽象类80
3.2.3 使用final关键字82
3.2.4 使用接口82
项目思考84
项目实训85
项目4 PHP数据处理86
任务4.1 字符串处理86
4.1.1 字符串的格式化输出87
4.1.2 了解常用字符串函数89
4.1.3 HTML文本格式化91
4.1.4 连接和分割字符串93
4.1.5 查找和替换字符串95
4.1.6 从字符串中取子串97
任务4.2 日期/时间处理99
4.2.1 设置默认时区99
4.2.2 获取日期和时间100
4.2.3 格式化日期/时间102
任务4.3 数组处理103
4.3.1 创建数组104
4.3.2 遍历数组106
4.3.3 使用预定义数组107
4.3.4 使用数组函数110
项目思考112
项目实训113
项目5 构建PHP交互网页114
任务5.1 获取表单变量114
5.1.1 创建HTML表单115
5.1.2 添加表单控件116
5.1.3 读取表单变量118
任务5.2 验证表单数据121
5.2.1 基于JavaScript实现表单验证121
5.2.2 基于Spry框架实现表单验证124
5.2.3 基于HTML 5实现表单验证129
任务5.3 获取URL参数132
5.3.1 生成URL参数133
5.3.2 读取URL参数133
5.3.3 实现页面重定向135
任务5.4 会话管理137
5.4.1 了解会话137
5.4.2 创建会话变量138
5.4.3 销毁会话变量139
任务5.5 使用Cookie143
5.5.1 了解Cookie143
5.5.2 设置Cookie144
5.5.3 读取Cookie145
项目思考149
项目实训150
项目6 PHP文件处理152
任务6.1 文件操作152
6.1.1 打开和关闭文件153
6.1.2 向文件中写入内容154
6.1.3 从文件中读取内容156
6.1.4 在文件中定位159
6.1.5 检查文件属性161
6.1.6 其他文件操作163
任务6.2 目录操作165
6.2.1 创建目录165
6.2.2 读取目录166
6.2.3 删除目录168
6.2.4 解析路径信息170
6.2.5 检查磁盘空间172
任务6.3 上传文件173
6.3.1 创建文件上传表单173
6.3.2 上传单个文件174
6.3.3 上传多个文件177
项目思考180
项目实训181
项目7 PHP图像处理182
任务7.1 配置GD库182
7.1.1 加载GD库183
7.1.2 检测GD库信息183
任务7.2 图像基本操作185
7.2.1 创建图像186
7.2.2 输出图像188
7.2.3 分配颜色189
任务7.3 绘制图形191
7.3.1 绘制像素191
7.3.2 绘制轮廓图形192
7.3.3 绘制填充图形195
任务7.4 绘制文本197
7.4.1 绘制单个字符198
7.4.2 绘制字符串201
7.4.3 绘制中文文本202
项目思考205
项目实训206
项目8 MySQL数据库管理207
任务8.1 使用MySQL管理工具207
8.1.1 使用MySQL命令工具208
8.1.2 使用phpMyAdmin210
8.1.3 使用MySQL-Front211
任务8.2 创建和管理数据库212
8.2.1 创建数据库212
8.2.2 显示数据库列表213
8.2.3 删除数据库213
任务8.3 创建和维护表214
8.3.1 了解数据类型215
8.3.2 创建表216
8.3.3 查看表信息219
8.3.4 修改表220
8.3.5 重命名表221
8.3.6 删除表221
任务8.4 数据操作与查询221
8.4.1 插入记录222
8.4.2 查询记录225
8.4.3 更改记录228
8.4.4 删除记录229
任务8.5 使用其他数据库对象231
8.5.1 使用索引231
8.5.2 使用视图232
8.5.3 使用存储过程234
8.5.4 使用存储函数237
8.5.5 使用触发器239
任务8.6 安全性管理241
8.6.1 管理用户241
8.6.2 管理权限243
项目思考246
项目实训247
项目9 通过PHP访问MySQL248
任务9.1 创建MySQL数据库连接248
9.1.1 以编程方式创建MySQL连接249
9.1.2 在DW中创建MySQL连接251
9.1.3 数据库连接的应用与管理253
任务9.2 查询记录253
9.2.1 以编程方式创建记录集254
9.2.2 在DW中创建记录集257
9.2.3 分页显示记录集263
9.2.4 创建搜索/结果页267
9.2.5 创建主/详细页271
任务9.3 添加记录276
9.3.1 以编程方式实现添加记录276
9.3.2 快速生成记录添加页278
任务9.4 更新记录282
9.4.1 以编程方式实现记录更新282
9.4.2 快速生成记录更新页286
任务9.5 删除记录290
9.5.1 以编程方式实现记录删除290
9.5.2 快速生成记录删除页292
项目思考294
项目实训295
项目10 开发新闻发布系统296
任务10.1 系统功能设计296
10.1.1 系统功能分析296
10.1.2 数据库设计与实现297
10.1.3 系统功能模块划分298
任务10.2 实现用户管理299
10.2.1 系统登录299
10.2.2 创建用户302
10.2.3 管理用户304
10.2.4 修改用户306
10.2.5 删除用户307
任务10.3 实现新闻类别管理308
10.3.1 添加新闻类别308
10.3.2 管理新闻类别309
10.3.3 修改新闻类别311
10.3.4 删除新闻类别312
任务10.4 实现新闻管理312
10.4.1 发布新闻313
10.4.2 管理新闻315
10.4.3 编辑新闻316
10.4.4 删除新闻319
任务10.5 实现新闻浏览320
10.5.1 系统首页320
10.5.2 浏览新闻323
10.5.3 分类浏览新闻324
10.5.4 搜索新闻326
项目思考327
项目实训328