第1篇 基础础入门 1
第1章 初识庐山真面目——走进PHP7的世界 3
1.1认识PHP 4
1.1.1什么是PHP 4
1.1.2PHP的发展历程 4
1.1.3PHP语言的优势 5
1.2PHP能干什么 5
1.3常用的开发利器 6
1.3.1PHP代码开发工具 6
1.3.2网页设计工具 7
1.3.3文本编辑工具 7
1.4PHP7的新特征 8
1.5如何能学好PHP7 10
1.6疑难解惑 11
第2章 开发前必备工作——配置PHP服务器环境 13
2.1PHP服务器概述 14
2.2安装PHP前的准备工作 14
2.2.1软硬件环境 14
2.2.2实例1——获取PHP7.1安装资源包 15
2.3PHP+IIS服务器的安装配置 16
2.3.1实例2——IIS简介及安装 16
2.3.2实例3——PHP的安装 17
2.3.3实例4——设置虚拟目录 20
2.4PHP+Apache服务器的环境搭建 21
2.4.1Apache简介 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.1PHP语言标识 32
3.2熟悉编码规范 32
3.2.1什么是编码规范 33
3.2.2PHP的一些编码规范 33
3.3常量 35
3.3.1声明和使用常量 35
3.3.2使用系统预定义常量 35
3.4变量 37
3.4.1PHP中的变量声明 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.8NULL型 46
3.5.9资源类型 46
3.5.10数据类型之间的相互转换 46
3.6PHP7的新变化——声明标量类型和函数返回值类型 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.8PHP7的新变化——合并运算符和组合运算符 53
3.9PHP中的表达式 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.4PHP7的新变化——新增intdiv()函数 65
4.5包含文件 66
4.5.1require和include 66
4.5.2include_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.1while循环语句 74
5.3.2do…while循环语句 75
5.3.3for循环语句 76
5.3.4foreach循环语句 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.3Perl兼容正则表达式函数 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.5PHP获取表单传递数据的方法 138
9.6PHP对URL传递的参数进行编码 139
9.7案例实战——团购商品订单表 140
9.8疑难解惑 141
第10章 时间很重要——管理日期和时间 143
10.1系统时区的设置 144
10.1.1时区划分 144
10.1.2时区设置 144
10.2PHP的日期和时间函数 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.8PHP7的新变化——支持匿名类 168
11.9疑难解惑 169
第12章 不可避免的问题——错误处理和异常处理 171
12.1常见的错误和异常 172
12.2错误处理 175
12.2.1php.ini中的错误处理机制 175
12.2.2应用DIE语句进行调试 175
12.2.3自定义错误和错误触发器 176
12.2.4错误记录 179
12.3PHP7新变化——改变了错误的报告方式 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.3Jpgraph库的基本操作 213
14.3.1Jpgraph的安装 214
14.3.2Jpgraph的配置 214
14.4案例实战1——制作圆形统计图 215
14.5案例实战2——制作3D饼形统计图 217
14.6疑难解惑 218
第15章 保持HTTP连接状态——Cookie和会话管理 221
15.1Cookie的基本操作 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.2Session的基本功能 226
15.2.3Cookie与Session 226
15.2.4储存SessionID在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.3MySQL版本 235
16.1.4MySQL的优势 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.1MySQL数据库的安全问题 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安装与配置MySQL5.7 250
17.1.1安装MySQL5.7 250
17.1.2配置MySQL5.7 252
17.2启动服务并登录MySQL数据库 255
17.2.1启动MySQL服务 255
17.2.2登录MySQL数据库 256
17.3MySQL数据库的基本操作 258
17.3.1创建数据库 258
17.3.2查看数据库 258
17.3.3删除数据库 259
17.3.4选择数据库 259
17.4MySQL数据表的基本操作 259
17.4.1创建数据表 260
17.4.2查看数据表的结构 261
17.4.3修改数据表结构 262
17.4.4删除数据表 263
17.5MySQL语句的操作 263
17.5.1插入记录 263
17.5.2查询记录 264
17.5.3修改记录 265
17.5.4删除记录 265
17.6MySQL数据库的备份与还原 265
17.6.1数据备份 265
17.6.2数据还原 272
17.7疑难解惑 274
第18章 最经典的方法——使用MySQLi操作MySQL 275
18.1PHP访问MySQL数据库的一般步骤 276
18.2连接数据库前的准备工作 276
18.3PHP操作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.2PDO的安装 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