PHP程序设计项目化教程(微课版)

引入信息安全的相关知识,通过分析实际案例,让读者了解并掌握PHP编程和安全实践在实际应用中的具体运用
分享 推荐 0 收藏 0 阅读 421
臧金梅 (作者) 978-7-115-65980-4

关于本书的内容有任何问题,请联系 马小霞

1、注重实践:书中将提供丰富的实践项目,使读者在学习过程中能够动手实践,提高实际操作能力。
2、结合安全:在讲解PHP编程的基础上,引入信息安全的相关知识,让读者了解并掌握安全防护技巧。
3、理论与实践相结合:在介绍PHP编程和安全知识的同时,提供相应的理论支持,使读者能够更好地理解和运用所学知识。
4、案例教学:通过分析实际案例,让读者了解并掌握PHP编程和安全实践在实际应用中的具体运用。
5、面向应用:本书将面向实际应用,让读者在学习过程中能够更好地应对实际工作中的挑战。

内容摘要

本书采用项目化内容组织方式,通过一系列精心设计的项目案例,逐步引导读者从PHP编程入门走向精通。具体项目包括启程探索PHP世界、智能BMI计算与健身运动推荐系统、汇率计算器、学生成绩计算器、文本内容过滤器、用户注册平台、问卷统计工具、购物车系统、学生信息管理系统。项目内容全面涵盖PHP语法基础、流程控制、函数、文件和目录操作、前后端交互等知识,旨在通过实际项目加深读者对PHP编程技术的理解,提高应用能力。
本书在深入讲解PHP编程技术的同时,特别强调了网络应用安全措施的重要性,旨在帮助读者构建功能强大且安全可靠的Web应用。
本书适合作为普通高等学校、职业院校计算机相关专业的教材,同时也适合作为PHP爱好者及相关技术人员的自学参考书。

目录

目 录









模块1 PHP基础

项目1
启程探索PHP世界—PHP编程入门 2
知识储备 3
1.1 PHP简介 3
1.1.1 什么是PHP 3
1.1.2 PHP的发展历史 3
1.1.3 PHP的语言特性 4
1.1.4 PHP的工作原理 5
1.2 PHP开发环境与工具 5
1.2.1 PHP开发环境 5
1.2.2 PHP集成开发环境 6
1.2.3 PHP开发工具 7
【素养提升】工具是为思维服务的 8
1.2.4 Visual Studio Code的安装
配置 8
【素养提升】智能编程助手不是
万能的 10
1.3 PHP的简单语法 11
1.3.1 PHP的标记方式 11
1.3.2 PHP的注释方式 12
1.3.3 PHP的数据输出方式 12
1.3.4 字符串连接运算符 13
1.3.5 换行符的使用 13
【能力进阶】PHP编程书写规范 14
项目分析 14
项目实施 14
任务1-1 搭建PHP开发环境 14
任务1-2 创建PHP文件 15
任务1-3 编写PHP代码 15
项目实训—输出个人信息 17
项目小结 17
应用安全拓展 17
巩固练习 18
项目2
智能BMI计算与健身运动推荐
系统—语法基础 19
知识储备 20
2.1 变量和常量 20
2.1.1 标识符 20
2.1.2 关键字 20
2.1.3 变量 21
【案例实践2-1】输出商品信息 23
【能力进阶】编程命名规范 24
2.1.4 常量 24
【案例实践2-2】输出商品折扣
信息 25
2.2 标量数据类型 26
2.2.1 布尔型 26
2.2.2 整型 27
2.2.3 浮点型 27
2.2.4 字符串型 27
2.2.5 数据类型的检测 30
2.3 运算符 31
2.3.1 运算符的分类 31
【能力进阶】三目运算符嵌套 32
2.3.2 算术运算符 32
【案例实践2-3】计算商品折扣
价格 33
2.3.3 赋值运算符 34
2.3.4 比较运算符 35
2.3.5 逻辑运算符 36
2.3.6 运算符的优先级 37
【案例实践2-4】计算商品盈利 37
2.4 表达式 38
2.5 数据类型的转换 39
2.5.1 自动类型转换 39
2.5.2 强制类型转换 40
项目分析 41
项目实施 41
任务2-1 计算BMI 41
任务2-2 实现健身运动推荐 42
项目实训—图书信息的定义及管理 43
项目小结 43
应用安全拓展 44
巩固练习 46

项目3
汇率计算器—流程控制 47
知识储备 48
3.1 流程控制简述 48
3.2 分支结构 48
3.2.1 单分支结构 48
3.2.2 双分支结构 50
3.2.3 分支结构的嵌套应用 50
【案例实践3-1】儿童旅行费折扣
问题 51
3.2.4 多分支结构—if...elseif...else
语句 52
【案例实践3-2】分时问候 54
【能力进阶】深入理解分支结构中else
语句的含义 54
3.2.5 多分支结构—switch
语句 56
【案例实践3-3】课余活动反馈 58
3.2.6 switch语句和if语句结合的
结构 59
3.3 循环结构 59
3.3.1 for循环结构 59
【案例实践3-4】实现1~10的奇偶数
判断 60
3.3.2 while循环结构 61
3.3.3 do…while循环结构 61
【素养提升】有趣的while和do…while
循环结构 62
3.3.4 循环嵌套 62
【案例实践3-5】实现九九乘法表的
输出 63
【素养提升】循环中的智慧:人生的
重复与成长 64
3.4 跳转语句 64
3.4.1 break语句 64
3.4.2 continue语句 65
3.5 异常处理 65
3.5.1 错误类型和级别 65
3.5.2 异常处理方式 66
3.6 文件包含语句 67
3.6.1 include语句和require
语句 67
3.6.2 include_once语句和
require_once语句 68
项目分析 69
项目实施 69
任务3-1 一对一汇率计算 69
任务3-2 一对多汇率计算 71
项目实训—输出金字塔图形 72
项目小结 72
应用安全拓展 73
巩固练习 74
项目4
学生成绩计算器—PHP
函数 76
知识储备 77
4.1 初识函数 77
4.1.1 函数的概念 77
4.1.2 函数的优势 77
4.1.3 函数的分类 78
4.2 自定义函数 78
4.2.1 函数的定义 79
【案例实践4-1】使用函数创建
表格 79
【素养提升】函数使用规范 80
4.2.2 函数的参数 80
4.2.3 函数的调用 82
【案例实践4-2】精确判断特定年月的
天数 84
4.2.4 变量的作用域 85
【能力进阶】匿名函数 86
4.3 处理GET请求和预定义
变量$_GET 87
4.4 预定义函数 87
4.4.1 变量函数 87
【案例实践4-3】数据验证与类型
处理 89
4.4.2 数学函数 90
【案例实践4-4】数学运算工具箱 90
4.4.3 时间和日期函数 92
【案例实践4-5】计算度过的时间 93
【素养提升】自主获取信息 94
项目分析 95
项目实施 95
任务4-1 构建成绩输入与验证
界面 95
任务4-2 计算加权总分 95
任务4-3 评估成绩等级 96
任务4-4 计算学生成绩 96
项目实训—日期差计算器 97
项目小结 97
应用安全拓展 98
巩固练习 99

项目5
文本内容过滤器—数据
处理 101
知识储备 102
5.1 数组 102
5.1.1 初识数组 102
5.1.2 数组的创建和初始化 103
5.1.3 数组的遍历 104
【案例实践5-1】计算学生平均分 106
5.1.4 常用的数组函数 106
【案例实践5-2】获取学生分数的
各种统计信息 107
【案例实践5-3】使用指针操作
数组 109
5.2 字符串 113
5.2.1 字符串的输出 113
5.2.2 常用的字符串操作函数 113
【能力进阶】其他截取函数 114
【能力进阶】其他查找函数 114
【能力进阶】其他去除空白函数 116
【案例实践5-4】通过文件路径获取
文件基本信息 116
【案例实践5-5】格式化表单提交的数据 117
【案例实践5-6】隐私保护:格式化
用户提交的手机号 119
【素养提升】培养隐私保护意识,构建
和谐数字社会 119
5.2.3 字符串与数组 120
【案例实践5-7】判断IP地址
格式 121
项目分析 122
项目实施 122
任务5-1 定义敏感词库 122
任务5-2 实现内容过滤逻辑 122
任务5-3 测试并展示过滤效果 123
项目实训—敏感词过滤与检测 123
项目小结 123
应用安全拓展 124
巩固练习 125

模块2 PHP进阶

项目6
用户注册平台—前后端数据
交互 128
知识储备 129
6.1 表单基础与数据交互 129
6.1.1 创建表单 129
6.1.2 添加表单控件 129
6.1.3 提交表单数据 131
6.1.4 获取表单提交的数据 132
【案例实践6-1】实现简单的用户
登录和验证 134
【能力进阶】$_SERVER超全局
变量 135
【能力进阶】判断表单是否被
提交 135
【能力进阶】深入理解GET与
POST 136
6.1.5 处理表单数组数据 136
【案例实践6-2】学生课外活动选择
表单 137
6.1.6 查询字符串与URL参数
传递 138
6.1.7 使用查询字符串实现前后端
数据交互 139
【案例实践6-3】动态展示新闻
列表 139
【能力进阶】对GET请求与查询
字符串的理解 140
6.2 HTTP基础 141
6.2.1 HTTP/HTTPS简介 141
6.2.2 HTTP Headers的组成 142
6.2.3 基本信息 142
6.2.4 请求报文 144
【案例实践6-4】查看请求报文 146
6.2.5 响应报文 147
【能力进阶】自定义响应头 148
6.3 Cookie和Session技术 149
6.3.1 Cookie技术 149
【案例实践6-5】 实现用户自动
登录 152
6.3.2 Session技术 153
【案例实践6-6】 通过Session
验证登录信息 155
6.3.3 Cookie和Session的
区别 157
【素养提升】PHP中的前后端数据
交互与用户隐私保护 158
6.4 正则表达式 158
6.4.1 正则表达式简介 158
6.4.2 正则表达式的组成 158
6.4.3 正则表达式的用法 158
6.4.4 正则表达式在PHP中的
应用 161
【案例实践6-7】提取电子邮件
地址 163
项目分析 164
项目实施 164
任务6-1 实现用户注册界面 164
任务6-2 实现用户数据有效性
检查 165
项目实训—用户登录与登出 166
项目小结 167
应用安全拓展 168
巩固练习 170
项目7
问卷统计工具—文件和目录
操作 171
知识储备 172
7.1 目录操作 172
7.1.1 目录基本操作 172
【案例实践7-1】使用scandir()函数
遍历指定目录 174
7.1.2 目录与路径解析 174
【案例实践7-2】解析路径基本
信息 175
7.1.3 目录句柄 176
【案例实践7-3】使用目录句柄函数
遍历指定目录 177
7.2 文件操作 178
7.2.1 文件基本操作 178
7.2.2 文件读写操作 180
7.2.3 文件的上传 183
【案例实践7-4】实现单个文件
上传 185
【能力进阶】多文件上传技巧 186
【素养提升】精确操作文件和目录 187
项目分析 187
项目实施 187
任务7-1 实现问卷统计工具
界面 187
任务7-2 设计统计问卷选项 188
项目实训—上传个人简历和照片 191
项目小结 191
应用安全拓展 192
巩固练习 193

项目8
购物车系统—面向对象程序
设计 195
知识储备 196
8.1 面向对象 196
8.1.1 面向过程和面向对象的
对比 196
8.1.2 面向对象程序设计的优势 196
8.1.3 面向对象的核心概念 197
8.2 类和对象 197
8.2.1 类的定义 198
8.2.2 访问控制修饰符 198
8.2.3 类的实例化 199
8.2.4 访问类的成员 200
【能力进阶】为何在类方法中使用return
语句而非echo语句 200
【案例实践8-1】类的实例化及类
成员的访问 201
8.2.5 对象的比较 202
8.3 魔术方法 203
8.3.1 常见的魔术方法 203
8.3.2 构造方法 203
8.3.3 析构方法 204
【案例实践8-2】构造方法和析构方法
的应用 205
8.4 类常量和静态成员 206
8.4.1 类常量 206
8.4.2 静态成员 207
【能力进阶】类常量和静态属性的
应用场景 208
【能力进阶】self和static
关键字 208
8.5 面向对象的特性 208
8.5.1 封装 208
8.5.2 继承 211
【能力进阶】认识parent关键字 212
【能力进阶】认识final关键字 212
8.5.3 多态 213
【案例实践8-3】实现学校运动员参赛
得奖统计 214
8.6 抽象类和接口 216
8.6.1 抽象类 216
8.6.2 接口 217
【案例实践8-4】实现常见交通工具的
应用 218
【素养提升】从面向对象程序设计到职
业素养:技术提升与团队协作的
双向进阶 219
项目分析 220
项目实施 220
任务8-1 定义商品类及其子类 220
任务8-2 定义购物车类 222
任务8-3 实现前端界面 223
任务8-4 实现后端逻辑 225
项目实训—常见图形的周长和面积
计算器 226
项目小结 227
应用安全拓展 227
巩固练习 228

项目9
学生信息管理系统—使用PHP操作MySQL数据库 230
知识储备 231
9.1 MySQL概述 231
9.1.1 MySQL简介 231
9.1.2 MySQL的特点 231
9.1.3 安装MySQL 232
9.1.4 启动MySQL 232
9.1.5 安装MySQL可视化工具 232
9.2 MySQL的基本操作 233
9.2.1 MySQL数据库操作 233
9.2.2 MySQL数据表操作 234
9.2.3 MySQL数据操作 235
9.3 PHP的数据库扩展 235
9.3.1 MySQLi扩展 235
9.3.2 PDO扩展 236
9.3.3 其他数据库扩展 236
9.4 使用PHP操作MySQL
数据库 236
9.4.1 MySQLi扩展的用法 236
9.4.2 MySQLi扩展的核心函数 236
9.4.3 连接MySQL数据库 237
【能力进阶】封装数据库连接
代码 238
9.4.4 选择MySQL数据库 238
9.4.5 执行SQL语句 238
【案例实践9-1】实现学生注册
功能 239
9.4.6 预处理操作 240
【案例实践9-2】添加预处理实现学生
注册功能 242
9.4.7 处理结果集 243
【案例实践9-3】解决用户名冲突
问题 244
【案例实践9-4】实现学生登录
功能 246
9.4.8 释放结果集 247
9.4.9 断开数据库连接 247
【素养提升】数据安全意识的培养与
加强 248
项目分析 248
项目实施 248
任务9-1 设计数据库 248
任务9-2 设计数据连接 249
任务9-3 设计登录页面 249
任务9-4 设置操作权限 250
任务9-5 设计注册页面 251
任务9-6 添加数据 253
任务9-7 浏览数据 254
任务9-8 编辑数据 255
任务9-9 删除数据 258
任务9-10 查询数据 259
项目实训—图书管理系统 260
项目小结 262
应用安全拓展 262
巩固练习 263

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

臧金梅,山东信息职业技术学院教师,拥有15年专业教学经验,主要研究方向为Web前端开发、计算机网络等。参与编写了5本高职规划教材,1本为“十四五”职业教育国家规划教材,参与建设了1门省级精品课程、2门省级精品资源共享课程、2门省级在线精品课程、1门一流核心课程(线下)。主持和参与各级课题十余项,发表多篇学术论文,获省级职业教育成果奖二等奖一项。曾获山东省第七届“超星杯”高校青年教师教学比赛二等奖,“建行杯”山东省“互联网+”大学生创新创业大赛金奖1项、铜奖1项。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部