目 录
第1篇 基础入门 1
第1章 初识庐山真面目——走进PHP 7
的世界 3
1.1 认识PHP 4
1.1.1 什么是PHP 4
1.1.2 PHP的发展历程 4
1.1.3 PHP语言的优势 5
1.2 PHP能干什么 5
1.3 常用的开发利器 6
1.3.1 PHP代码开发工具 6
1.3.2 网页设计工具 7
1.3.3 文本编辑工具 7
1.4 PHP 7的新特征 8
1.5 如何能学好PHP 7 10
1.6 疑难解惑 11
第2章 开发前必备工作——配置PHP
服务器环境 13
2.1 PHP服务器概述 14
2.2 安装PHP前的准备工作 14
2.2.1 软硬件环境 14
2.2.2 实例1——获取PHP 7.1安装
资源包 15
2.3 PHP +IIS服务器的安装配置 16
2.3.1 实例2——IIS简介及安装 16
2.3.2 实例3——PHP的安装 17
2.3.3 实例4——设置虚拟目录 20
2.4 PHP+Apache服务器的环境搭建 21
2.4.1 Apache简介 21
2.4.2 实例5——关闭原有的网站
服务器 21
2.4.3 实例6——安装Apache 22
2.4.4 实例7——将PHP与Apache
建立关联 24
2.5 新手的福音——安装WampServer
集成开发环境 25
2.6 案例实战——测试第一个PHP程序 27
2.7 疑难解惑 28
第3章 零基础开始学习——PHP的基本
语法 31
3.1 PHP语言标识 32
3.2 熟悉编码规范 32
3.2.1 什么是编码规范 33
3.2.2 PHP的一些编码规范 33
3.3 常量 35
3.3.1 声明和使用常量 35
3.3.2 使用系统预定义常量 35
3.4 变量 37
3.4.1 PHP中的变量声明 37
3.4.2 可变变量和变量的引用 38
3.4.3 变量作用域 39
3.4.4 变量的销毁 41
3.5 理解变量的类型 42
3.5.1 什么是类型 42
3.5.2 整型 42
3.5.3 浮点型 43
3.5.4 布尔型 43
3.5.5 字符串型 43
3.5.6 数组型 44
3.5.7 对象型 45
3.5.8 NULL型 46
3.5.9 资源类型 46
3.5.10 数据类型之间的相互转换 46
3.6 PHP 7的新变化——声明标量类型和
函数返回值类型 47
3.7 使用运算符 48
3.7.1 算术运算符 48
3.7.2 字符串连接符 49
3.7.3 赋值运算符 50
3.7.4 比较运算符 50
3.7.5 逻辑运算符 52
3.7.6 按位运算符 52
3.7.7 否定控制运算符 52
3.7.8 错误控制运算符 52
3.7.9 三元运算符 53
3.7.10 运算符的优先级和结合规则 53
3.8 PHP 7的新变化——合并运算符和组合
运算符 53
3.9 PHP中的表达式 54
3.10 创建多维数组 55
3.11 疑难解惑 55
第4章 实现定制功能——函数的应用 57
4.1 认识函数 58
4.2 内置函数 58
4.2.1 数学函数 58
4.2.2 变量相关的函数 59
4.3 自定义函数 61
4.3.1 定义和调用函数 61
4.3.2 向函数传递参数值 61
4.3.3 向函数传递参数引用 62
4.3.4 从函数中返回值 63
4.3.5 引用函数 63
4.3.6 取消函数引用 64
4.3.7 变量函数 65
4.4 PHP 7的新变化——新增intdiv()函数 65
4.5 包含文件 66
4.5.1 require和include 66
4.5.2 include_once和require_once 67
4.6 疑难解惑 67
第5章 程序的执行方向——程序控制
结构 69
5.1 流程控制概述 70
5.2 条件控制结构 70
5.2.1 单一条件分支结构(if语句) 70
5.2.2 双向条件分支结构(if…else
语句) 71
5.2.3 多向条件分支结构(elseif语句) 72
5.2.4 多向条件分支结构(switch 语句) 73
5.3 循环控制结构 74
5.3.1 while循环语句 74
5.3.2 do...while循环语句 75
5.3.3 for循环语句 76
5.3.4 foreach循环语句 77
5.3.5 流程控制的另一种书写格式 77
5.3.6 使用break/continue语句跳出
循环 79
5.4 案例实战1——条件分支结构的应用 80
5.5 案例实战2——循环控制结构的应用 82
5.7 疑难解惑 83
第6章 特殊的元素集合——数组 85
6.1 什么是数组 86
6.2 数组类型 86
6.2.1 数字索引数组 86
6.2.2 关联索引数组 87
6.3 数组的结构 87
6.3.1 一维数组 87
6.3.2 多维数组 88
6.4 遍历数组 90
6.4.1 遍历一维数字索引数组 90
6.4.2 遍历一维联合索引数组 90
6.4.3 遍历多维数组 91
6.5 数组排序 92
6.5.1 一维数组排序 92
6.5.2 多维数组排序 94
6.6 字符串与数组的转换 95
6.7 向数组中添加和删除元素 96
6.7.1 向数组中添加元素 96
6.7.2 从数组中删除元素 97
6.8 查询数组中的指定元素 98
6.9 统计数组元素的个数 100
6.10 删除数组中重复的元素 101
6.11 调换数组中的键值和元素值 102
6.12 数组的序列化 103
6.13 疑难解惑 104
第7章 不可不说的文本数据——字符串 105
7.1 字符串的单引号和双引号 106
7.2 字符串的连接符 107
7.3 字符串的基本操作 108
7.3.1 手动和自动转义字符串中的
字符 108
7.3.2 计算字符串的长度 108
7.3.3 字符串单词统计 109
7.3.4 清理字符串中的空格 109
7.3.5 字符串的切分与组合 110
7.3.6 字符串子串的截取 111
7.3.7 字符串子串的替换 112
7.3.8 字符串查找 112
7.4 疑难解惑 113
第2篇 核心技术 115
第8章 匹配文本有妙招——正则
表达式 117
8.1 什么是正则表达式 118
8.2 正则表达式的语法规则 118
8.2.1 方括号([ ]) 118
8.2.2 连字符(-) 118
8.2.3 点号字符(.) 118
8.2.4 限定符(+*?{n,m}) 118
8.2.5 行定位符(^和$) 119
8.2.6 排除字符([^]) 119
8.2.7 括号字符(()) 119
8.2.8 选择字符(|) 119
8.2.9 转义字符与反斜杠 119
8.2.10 认证E-mail的正则表达式 119
8.3 Perl 兼容正则表达式函数 120
8.3.1 使用正则表达式对字符串进行
匹配 120
8.3.2 使用正则表达式替换字符串的
子串 122
8.3.3 使用正则表达式切分字符串 122
8.4 案例实战——创建商品在线订单
页面 123
8.5 疑难解惑 126
第9章 表单的动态效果——PHP与
Web页面交互 127
9.1 创建动态内容 128
9.2 表单与PHP 128
9.3 设计表单元素 129
9.3.1 表单的基本结构 129
9.3.2 文本框 129
9.3.3 复选框 130
9.3.4 单选按钮 132
9.3.5 下拉列表 133
9.3.6 重置按钮和提交按钮 134
9.4 传递数据 137
9.4.1 用POST方式传递数据 137
9.4.2 用GET方式传递数据 137
9.5 PHP获取表单传递数据的方法 138
9.6 PHP对URL传递的参数进行编码 139
9.7 案例实战——团购商品订单表 140
9.8 疑难解惑 141
第10章 时间很重要——管理日期和
时间 143
10.1 系统时区的设置 144
10.1.1 时区划分 144
10.1.2 时区设置 144
10.2 PHP的日期和时间函数 144
10.2.1 关于UNIX时间戳 144
10.2.2 获取当前的时间戳 145
10.2.3 获取当前的日期和时间 145
10.2.4 使用时间戳获取日期信息 146
10.2.5 检验日期的有效性 149
10.2.6 输出格式化时间戳的日期和
时间 149
10.2.7 显示本地化的日期和时间 151
10.2.8 将日期和时间解析为UNIX
时间戳 152
10.2.9 日期时间在PHP和MySQL
数据格式之间的转换 152
10.3 案例实战1——实现倒计时功能 153
10.4 案例实战2——比较两个时间的
大小 153
10.5 疑难解惑 154
第11章 主流的编程思想——面向对象
编程 155
11.1 类和对象的介绍 156
11.2 类的基本操作 157
11.2.1 类的声明 157
11.2.2 成员属性 157
11.2.3 成员方法 158
11.2.4 类的实例化 158
11.2.5 访问类中的成员属性和方法 159
11.3 构造方法和析构方法 160
11.4 访问器 161
11.5 类的继承 163
11.6 抽象类和接口 163
11.6.1 抽象类 164
11.6.2 接口 165
11.7 面向对象的多态性 166
11.7.1 通过继承实现多态 166
11.7.2 通过接口实现多态 167
11.8 PHP 7的新变化——支持匿名类 168
11.9 疑难解惑 169
第12章 不可避免的问题——错误处理
和异常处理 171
12.1 常见的错误和异常 172
12.2 错误处理 175
12.2.1 php.ini中的错误处理机制 175
12.2.2 应用DIE语句进行调试 175
12.2.3 自定义错误和错误触发器 176
12.2.4 错误记录 179
12.3 PHP 7新变化——改变了错误的报告
方式 180
12.4 异常处理 180
12.4.1 异常的基本处理方法 180
12.4.2 自定义的异常处理器 182
12.4.3 处理多个异常 183
12.4.4 设置顶层异常处理器 184
12.5 案例实战——处理异常或错误 185
12.6 疑难解惑 186
第13章 与外界的交流——操作文件与
目录 187
13.1 查看文件和目录 188
13.1.1 查看文件名称 188
13.1.2 查看目录名称 188
13.1.3 查看文件真实目录 189
13.2 查看文件信息 189
13.2.1 查看文件的类型 189
13.2.2 查看文件的访问和修改时间 190
13.3 文件操作 190
13.3.1 打开文件和关闭文件 190
13.3.2 读取文件 191
13.3.3 文件数据写入 193
13.3.4 重命名和移动文件 194
13.3.5 复制文件 195
13.3.6 删除文件 195
13.4 目录操作 196
13.5 上传文件 200
13.5.1 全局变量$_FILES 200
13.5.2 文件上传 200
13.6 案例实战——编写访客计数器 202
13.7 疑难解惑 203
第14章 图形界面设计——GD绘图与
图像处理 205
14.1 在PHP中加载GD库 206
14.2 图形图像的典型应用案例 208
14.2.1 创建一个简单的图像 209
14.2.2 使用GD2的函数在图片上
添加文字 210
14.2.3 使用TrueType字体处理中文
生成图片 211
14.3 Jpgraph库的基本操作 213
14.3.1 Jpgraph的安装 214
14.3.2 Jpgraph的配置 214
14.4 案例实战1——制作圆形统计图 215
14.5 案例实战2——制作3D饼形
统计图 217
14.6 疑难解惑 218
第15章 保持HTTP连接状态——Cookie
和会话管理 221
15.1 Cookie的基本操作 222
15.1.1 什么是Cookie 222
15.1.2 创建Cookie 222
15.1.3 读取Cookie 223
15.1.4 删除Cookie 224
15.2 认识Session 225
15.2.1 什么是Session 225
15.2.2 Session的基本功能 226
15.2.3 Cookie与Session 226
15.2.4 储存Session ID在Cookie或
URL中 226
15.3 会话管理 226
15.3.1 创建会话 227
15.3.2 注册会话变量 227
15.3.3 使用会话变量 228
15.3.4 注销和销毁会话变量 228
15.4 案例实战——综合应用会话管理 229
15.5 疑难解惑 230
第3篇 操作MySQL数据库 231
第16章 管理MySQL的利器
——phpMyAdmin操作MySQL
数据库 233
16.1 什么是MySQL 234
16.1.1 客户-服务器软件 234
16.1.2 数据库的原理 234
16.1.3 MySQL版本 235
16.1.4 MySQL的优势 236
16.2 创建MySQL数据库和数据表 236
16.2.1 启动phpMyAdmin管理
程序 236
16.2.2 创建数据库 237
16.2.3 认识数据表的字段 238
16.2.4 创建数据表 240
16.2.5 添加数据 242
16.3 加密MySQL数据库 243
16.3.1 MySQL数据库的安全问题 243
16.3.2 为MySQL管理账号加上
密码 243
16.4 数据库的备份与还原 245
16.4.1 数据库的备份 245
16.4.2 数据库的还原 246
16.5 疑难解惑 248
第17章 数据库编程——MySQL数据库
与SQL查询 249
17.1 安装与配置MySQL 5.7 250
17.1.1 安装MySQL 5.7 250
17.1.2 配置MySQL 5.7 252
17.2 启动服务并登录MySQL数据库 255
17.2.1 启动MySQL服务 255
17.2.2 登录MySQL数据库 256
17.3 MySQL数据库的基本操作 258
17.3.1 创建数据库 258
17.3.2 查看数据库 258
17.3.3 删除数据库 259
17.3.4 选择数据库 259
17.4 MySQL数据表的基本操作 259
17.4.1 创建数据表 260
17.4.2 查看数据表的结构 261
17.4.3 修改数据表结构 262
17.4.4 删除数据表 263
17.5 MySQL语句的操作 263
17.5.1 插入记录 263
17.5.2 查询记录 264
17.5.3 修改记录 265
17.5.4 删除记录 265
17.6 MySQL数据库的备份与还原 265
17.6.1 数据备份 265
17.6.2 数据还原 272
17.7 疑难解惑 274
第18章 最经典的方法——使用MySQLi
操作MySQL 275
18.1 PHP访问MySQL数据库的一般
步骤 276
18.2 连接数据库前的准备工作 276
18.3 PHP操作MySQL数据库 277
18.3.1 连接MySQL服务器 277
18.3.2 选择数据库 278
18.3.3 创建数据库 279
18.3.4 创建数据表 281
18.3.5 添加数据 282
18.3.6 一次插入多条数据 284
18.3.7 读取数据 285
18.3.8 释放资源 287
18.3.9 关闭连接 287
18.4 案例实战1——动态添加员工信息 287
18.5 案例实战2——动态查询数据信息 289
18.6 提升安全性——防止SQL注入的
攻击 290
18.7 疑难解惑 292
第19章 最兼容的方法——使用PDO
操作MySQL数据库 293
19.1 认识PDO 294
19.2 PDO的安装 294
19.3 使用PDO操作MySQL 295
19.3.1 连接MySQL数据库 296
19.3.2 创建数据库 297
19.3.3 创建数据表 298
19.3.4 添加数据 299
19.3.5 一次插入多条数据 300
19.3.6 读取数据 300
19.4 提升安全性——防止SQL注入的
攻击 302
19.5 疑难解惑 303
第4篇 项目实训 305
第20章 项目实训1——开发验证码
系统 307
20.1 系统分析 308
20.1.1 学习目标 308
20.1.2 需求分析 308
20.1.3 系统文档 308
20.2 系统的代码实现 309
20.2.1 系统主界面 309
20.2.2 生成并输入验证码功能 311
20.2.3 验证码控制器 311
20.3 系统测试 313
第21章 项目实训2——开发个人博客
系统 315
21.1 系统的需求分析 316
21.1.1 学习目标 316
21.1.2 需求分析 316
21.1.3 系统文档 316
21.2 数据库分析 317
21.2.1 分析数据库 317
21.2.2 创建数据表 317
21.3 个人博客系统的代码实现 318
21.3.1 博客数据模型的文件 318
21.3.2 个人博客系统的主页面 322
21.3.3 个人博客新建和修改页面 324
21.3.4 个人博客删除页面 326
21.4 系统测试 327
第22章 项目实训3——开发用户权限
系统 329
22.1 必备知识 330
22.2 系统的需求分析 330
22.2.1 学习目标 331
22.2.2 需求分析 331
22.2.3 系统文档 331
22.3 数据库分析 332
22.3.1 分析数据库 332
22.3.2 创建数据表 333
22.4 用户权限系统的代码实现 335
22.4.1 系统入口文件 335
22.4.2 页面控制器 335
22.4.3 用户登录页面 337
22.4.4 数据模型的文件 339
22.4.5 用户数据模型页面 341
22.4.6 角色数据模型页面 343
22.4.7 权限数据模型页面 344
22.4.8 权限显示页面 345
22.5 系统测试 346
第23章 项目实训4——开发社区市场
系统 349
23.1 必备知识 350
23.2 系统的需求分析 350
23.2.1 学习目标 350
23.2.2 需求分析 351
23.2.3 系统文档 351
23.3 还原数据库 352
23.4 社区市场系统的代码实现 353
23.4.1 系统入口文件 353
23.4.2 项目配置文件 353
23.4.3 物品与需求展示控制器 356
23.4.4 用户后台控制器 376
23.4.5 数据模型的文件 390
23.5 系统测试 392