PHP简单易学且功能强大,是Web开发的首选语言。本书由浅入深、循序渐进,系统地介绍了PHP的相关知识及其在Web开发中的实际应用,并通过具体案例,使读者巩固所学知识,更好地进行开发实践。本书共分为14章,涵盖了PHP开发环境的搭建、PHP语法、FORM表单、数据库开发、面向对象编程、使用PDO连接数据库、会话控制、界面设计等内容。
本书内容丰富、讲解深入,适用于初、中级PHP用户,可以用做各类院校相关专业的教材,同时也是面向广大PHP爱好者的一本PHP实用参考书。
1.零基础入门:读者无需太多技术基础,就能非常轻松地掌握数据库设计、软件工程以及动态网站开发等相关技术。
2.内容丰富且实用:本书遵循知识的学习曲线,内容丰富,结合具体案例编排章节的内容,从一个知识点过渡到另一个知识点非常顺畅和自然。
3.强调实训环节与PHP知识的结合:以讲解PHP基础知识为目标,以案例的实现为载体,以不同的章节完成不同的任务为理念,采用软件工程的思想实现具体案例。
4.涉及面广:异常处理、结构化编程、面向对象编程、软件工程、软件测试、数据库设计、界面设计等知识在本书中均有触及。
5.丰富而实用的课后习题:精选新浪、百度等知名公司面试题。
孔祥盛,副教授,精通Java、JavaScript、PHP、Python等编程语言,熟悉Web开发、爬虫、自动化测试、数据分析与数据挖掘、数据可视化、数据库等技术,擅长将抽象的理论知识具体化、生活化,善于将综合知识融会贯通于项目案例,主编教材《PHP基础与实例教程》 印次20余次,并获河南省普通高等教育十四五规划教材立项、河南省优秀教材二等奖,主编教材《MySQL数据库基础与实例教程》印次近20次。
第 1章 PHP入门7
1.1 PHP概况7
1.2 Web开发基础知识8
1.2.1 浏览器8
1.2.2 服务器8
1.2.3 静态资源文件和动态资源文件9
1.3 HTML程序和PHP程序的执行流程9
1.3.1 HTML程序9
1.3.2 PHP程序10
1.3.3 存在静态代码的PHP程序12
上机实践1 安装、启动和关闭Apache服务13
上机实践2 编写HTML程序和PHP程序15
上机实践3 安装PHP预处理器16
上机实践4 Apache以加载模块方式自动加载PHP预处理器17
上机实践5 设置PHP预处理器的时区17
上机实践6 配置Apache服务18
上机实践7 查看PHP的配置信息19
上机实践8 查看Web服务器端口号占用情况20
场景1:拔掉旧SIM卡20
场景2:修改新SIM的默认端口号20
上机实践9:了解字符编码对于程序的重要性21
习 题22
第 2章 PHP基础知识22
2.1 PHP代码基础知识22
2.1.1 PHP标记的简写23
2.1.2 PHP语句及语句块23
2.1.3 PHP代码注释和HTML代码注释24
2.1.4 PHP代码的分解与合并25
2.2 赋值语句和变量25
2.2.1 标识符和标识符的命名规则26
2.2.2 赋值语句和变量26
2.2.3 手动删除变量名28
2.2.4 变量赋值方法29
2.2.5 可变变量32
2.3 自定义常量和预定义常量32
2.3.1 自定义常量32
2.3.2 预定义常量33
2.4 数据类型33
2.4.1 布尔值34
2.4.2 整数34
2.4.3 浮点数35
2.4.4 字符串35
2.4.5 数组38
2.4.6 对象38
2.4.7 资源39
2.4.8 null39
2.5 数据的输出39
2.5.1.print和echo40
2.5.2.print_r函数40
2.5.3.var_dump函数40
2.5.4.var_export函数41
2.6 编程规范41
2.5.1 书写规范41
2.5.2 命名规范42
上机实践 PHP基础知识43
习题43
第3章 PHP表达式43
3.1 表达式和语句43
3.2 变量和常量状态信息的函数44
3.2.1 检查常量或变量是否定义44
3.2.2 检查变量值是否为空的函数45
3.2.3 查看变量或常量的数据类型46
3.2.4 数据类型检查函数46
3.3 运算符47
3.3.1 算术运算符47
3.3.2 递增 递减运算符47
3.3.3 赋值运算符48
3.3.4 比较运算符49
3.3.5 逻辑运算符50
3.3.6 错误抑制运算符50
3.3.7 字符串连接运算符51
3.3.8 条件运算符51
3.3.9 null合并运算符52
3.3.10 执行运算符52
3.3.11 类型运算符53
3.3.12 运算符优先级53
3.4 数据类型的转换53
3.4.1 类型强制转换53
3.4.2 类型自动转换56
上机实践 PHP表达式56
习题56
第4章 PHP控制语句60
4.1 GET请求和预定义变量$_GET60
4.1.1 认识GET请求60
4.1.2 认识预定义变量$_GET61
4.2 条件控制语句62
4.2.1 if语句62
4.2.2 if…else语句62
4.2.3 else if和elseif语句63
4.2.4 switch语句64
4.2.5 match表达式65
4.3 循环语句66
4.3.1 while循环语句66
4.3.2 do…while循环语句67
4.3.3 for循环语句68
4.3.4 循环语句的应用69
4.4 其他控制语句69
4.4.1 continue语句69
4.4.2 break语句70
4.4.3 强行终止程序的执行70
4.5 错误和异常71
4.5.1 警告、错误和异常概述71
4.5.2 try…catch…finally完整语法格式71
上机实践 PHP控制语句72
习题72
第5章 PHP数组73
5.1 数组的必要性73
5.2 PHP数组的特点74
5.3 数组的分类74
5.4 创建数组74
5.4.1 变量名后跟[ ]变为数组名74
5.4.2 使用array语句或[ ]语句创建数组76
5.4.3 关于数组中元素的键的说明76
5.5 访问、修改或删除数组元素77
5.6 二维数组79
5.7 数组的解包80
5.8 数组处理函数80
5.8.1 快速创建数组的函数81
5.8.2 数组统计函数82
5.8.3 数组指针函数84
5.8.4 list语句85
5.8.5 使用循环语句遍历数组86
5.8.6 foreach语句87
5.8.7 数组检索函数88
5.8.8 数组排序函数90
上机实践 PHP数组91
习题91
第6章 PHP处理FORM表单94
6.1 认识GET请求、FORM表单和POST请求95
上机实践: 认识GET请求、FORM表单和POST请求95
6.2 FORM表单96
6.2.1 表单标签96
6.2..2 表单控件97
6.2.3 表单控件的其他常用属性99
6.2.4 其他表单控件100
6.2.5 表单按钮100
6.2.6 补充知识101
上机实践: FORM表单的综合应用102
上机实践: 认识输出缓存104
6.3 文件上传功能的实现106
6.3.1 文件上传的相关配置106
6.3.2 PHP文件上传流程107
6.3.3 预定义变量$_FILES108
6.3.4 PHP文件上传的实现108
上机实践: 文件上传功能的实现108
6.4 URL路径109
6.4.1 URL绝对路径110
6.4.2 URL相对路径110
6.4.3 URL相对路径其他概念110
上机实践: URL相对路径和URL绝对路径110
6.5 其他常用的预定义变量111
上机实践 PHP处理FORM表单112
习题112
第7章 自定义函数113
7.1 请求包含113
7.1.1 请求包含的语法格式114
7.1.2 四种请求包含的区别114
7.1.3 请求包含的返回值115
上机实践:认识include_path116
7.2 自定义函数的语法格式117
7.3 函数的调用118
上机实践:自定义函数的定义和调用118
上机实践:形参的组包和实参的解包119
7.4 变量的作用域和生命周期120
7.5 传值赋值和传引用赋值120
7.5 global关键字123
7.6 static关键字123
7.7 变量函数126
7.8 return和exit127
上机实践:自定义函数综合示例128
上机实践 自定义函数129
习题129
第8章 PHP结构化编程和PHP面向对象编程132
10.1 结构化编程132
上机实践:使用结构化编程解决三角形问题133
10.2 面向对象编程135
10.3 理解类和对象之间的关系135
10.4 自定义类、创建对象和方法的调用136
10.4.1 自定义类和创建类的对象136
10.4.2 定义构造方法和创建类的对象137
10.4.3 定义方法和调用方法139
上机实践:使用面向对象编程解决三角形问题1139
10.5 静态方法和静态方法的调用140
上机实践:使用面向对象编程解决三角形问题2142
10.6 PHP结构化编程和PHP面向对象编程144
上机实践 PHP面向对象编程145
习题145
第9章 MySQL数据库145
9.1 数据库概述145
9.1.1 数据库管理系统和数据库145
9.1.2 表结构和表记录146
9.1.3 SQL146
9.2 MySQL安装和配置147
上机实践:在Windows中安装MySQL ZIP压缩文件147
上机实践:将MySQL服务注册为Windows服务149
9.3 数据库的管理151
9.4 SQL脚本文件151
9.5 表结构的管理152
9.5.1 创建表结构前的准备工作152
9.5.2 创建表结构的语法格式153
9.5.3 创建users表的表结构153
9.5.3 查看表以及查看表结构154
9.5.4 删除表结构的语法格式155
9.6 表记录的更新操作155
9.6.1 insert155
9.6.2 update156
9.6.3 delete156
9.7 表记录的查询操作157
9.7.1 distinct和limit157
9.7.2 表和表之间的连接157
9.7.3 使用where子句过滤结果集158
9.7.4 使用order by对结果集排序159
9.7.5 使用聚合函数汇总结果集159
9.7.6 使用group by子句进行分组159
习题160
第 10章 PHP访问MySQL数据库162
10.1 PHP访问MySQL数据库的方法162
上机实践:开启PDO访问MySQL数据库的扩展163
10.2 PDO连接MySQL数据库163
10.3 PDO对象的prepare方法164
10.4 PDOStatement对象的execute方法165
10.4.1 execute方法、更新语句和rowCount方法165
10.4.2 execute方法、查询语句和fetch(all)方法167
10.4.3 execute方法、查询语句和fetchColumn168
10.5 PDO对象的lastInsertId方法169
上机实践:用户注册和用户登录功能的实现169
习题172
第 11章 个人博客系统的设计与开发173
11.1 个人博客系统的开发流程173
11.2 个人博客系统的系统规划173
113 个人博客系统的系统分析173
11.4 个人博客系统E-R图175
11.5 个人博客系统的系统设计177
11.6 个人博客系统的系统实施178
上机实践:创建个人博客系统的目录结构178
上机实践:创建个人博客系统的表结构179
上机实践:添加测试数据181
上机实践:博客管理功能的实现182
上机实践:评论管理功能的实现190
11.7 分页技术193
11.7.1 分页技术的实现方法193
11.7.2 分页技术的最简单实现194
11.7.3 分页导航的实现194
上机实践:分页技术的实现195
10.8 个人博客系统的系统测试197
10.8 个人博客系统系统的运行和维护198
习题198
第 12章 会话控制技术:Cookie与Session199
12.1 会话控制技术概述199
12.2 Cookie会话技术199
12.2.1 Cookie工作原理和生命周期199
12.2.2 Cookie的目的和典型应用201
12.2.3 使用setcookie函数创建Cookie201
12.2.4 其他PHP程序读取Cookie202
12.2.5 删除浏览器端的Cookie202
上机实践:Cookie会话技术203
12.3 Session会话技术206
12.3.1 Session工作原理和生命周期206
12.3.2 Cookie会话和Session会话之间的关系207
12.3.3 php.ini中有关Session的配置参数208
12.3.4 session_start函数208
12.3.5 全局变量$_SESSION208
12.3.6 有关Session的常用函数209
上机实践:Session会话技术209
12.4 header函数的使用218
12.4.1 响应行218
12.4.2 HTTP响应头和HTTP响应头列表218
12.4.3 header函数的使用219
上机实践:header函数的使用220
习题224
第 13章 字符串处理225
13.1 指定字符串的方法226
13.1.1 使用单引号或双引号指定字符串226
13.1.2 使用heredoc语法指定字符串226
13.1.3 使用nowdoc语法指定字符串226
13.2 常用字符串处理函数227
13.2.1 mb_*函数227
13.2.2 拼接和裁剪函数229
13.2.3 特殊字符处理函数229
13.2.4 URL字符串处理函数230
上机实践:个人博客系统中字符串的处理233
上机实践 字符串处理234
习题234
第 14章 个人博客系统首页的UI设计与实现237
14.1 Web前端技术237
14.1.1 HTML简介237
14.1.2 HTML元素的属性238
14.1.3 CSS简介238
14.1.4 JavaScript简介239
14.1.5 通过JavaScript的document对象操作HTML元素240
上机实践:Web前端技术241
14.2 使用DIV CSS实现个人博客系统首页的页面布局244
14.2.1 DIV CSS概述244
14.2.2 使用DIV定义个人博客系统首页的内容结构244
上机实践:使用DIV CSS实现个人博客系统首页的页面布局245
上机实践:将个人博客系统的各个功能模块整合到首页253