第1章 走进PHP 1
1.1 PHP编程语言概述 1
1.1.1 PHP的历史 1
1.1.2 PHP的发展历程 1
1.1.3使用场景和优势 2
1.1.4 PHP 5和PHP 7 2
1.2学好PHP的建议 3
1.3 Web项目介绍 4
1.3.1 Web项目框架图 5
1.3.2 PHP工作过程 6
1.4网站开发基本流程 6
1.5小结 8
1.6知识拓展 8
1.6.1常用软件资源 8
1.6.2 PHP开发社区 9
第2章 PHP安装和IDE介绍 11
2.1 Windows搭建WampServer 11
2.2 Mac和Linux搭建XAM PP环境 18
2.3 PHP IDE——PhpStorm 23
2.4小结 28
2.5知识拓展 28
2.5.1 HS、Apache和Nginx对比 28
第3章 PHP基础语法 31
3.1 PHP标记 31
3.1.1 XML风格 31
3.1.2脚本风格 31
3.1.3简短风格 32
3.1.4 ASP风格 32
3.1.5将PHP代码嵌入到HTML页面中 32
3.2注释及使用场景 34
3.3分号——指令分隔符 36
3.4变量 37
3.4.1声明和使用 37
3.4.2系统内置变量 39
3.5常量 40
3.5.1声明和使用 41
3.5.2系统预定义常量 42
3.6 PHP数据类型 44
3.6.1布尔型 44
3.6.2字符型 45
3.6.3整型 48
3.6.4浮点型 50
3.6.5数组 51
3.6.6对象 52
3.6.7资源 52
3.6.8空值 52
3.6.9数据类型汇总和检测 53
3.6.10数据类型之间的转换 55
3.7操作运算符 56
3.7.1算术运算符 56
3.7.2字符串运算符 57
3.7.3比较运算符 58
3.7.4赋值运算符 60
3.7.5递增运算符和递减运算符 61
3.7.6逻辑运算符 62
3.7.7三元运算符 63
3.7.8位运算符 63
3.7.9运算符优先级 65
3.8表达式 66
3.9小结 66
3.10知识拓展 67
3.10.1深入理解数据类型转换 67
第4章 函数 69
4.1函数的概念 69
4.2函数定义和使用 69
4.2.1函数参数 70
4.2.2函数返回值 73
4.3类型声明 74
4.4变量函数 76
4.5小结 77
4.6知识拓展 78
4.6.1内置函数介绍 78
4.6.2有趣的函数自身调用 79
第5章 流程控制和语言结构 81
5.1条件控制语句 81
5.1.1 if和else语句 81
5.1.2 switch语句 91
5.2循环控制语句 94
5.2.1 while循环语句 94
5.2.2 for循环语句 98
5.3跳转语句 101
5.3.1 continue语句 101
5.3.2 break语句 103
5.4包含文件 106
5.4.1 include()和require() 106
5.4.2 includ_once()和requir_once() 108
5.5变量作用域 110
5.6小结 113
5.7知识拓展 113
5.7.1无限循环 113
5.7.2输出乘法表 113
5.7.3命名空间namespace 115
第6章 字符串 119
6.1字符串定义 119
6.2字符串常见操作 120
6.2.1字符串连接 120
6.2.2字符串长度 120
6.2.3查找字符串 123
6.2.4字符串替换 126
6.2.5字符串截取 130
6.2.6字符串首尾去空格 131
6.2.7字符串大小写转化 133
6.3字符串比较函数 134
6.3.1按字节顺序进行字符串比较 134
6.3.2按自然排序进行字符串比较 135
6.4小结 136
6.5知识拓展 137
6.5.1字符串常用方法整理 137
6.5.2中文字符串和UTF-8 138
第7章 数组 140
7.1数组介绍 140
7.1.1什么是数组 140
7.1.2数组的构成 140
7.2数组创建 141
7.2.1数组创建方法 141
7.2.2数组数字索引 141
7.2.3数组关联索引 143
7.2.4多维数组 144
7.3数组的遍历与输出 145
7.3.1数组输出函数 146
7.3.2 foreach遍历 147
7.3.3 for遍历 150
7.3.4 list()函数 151
7.4数组常见操作 153
7.4.1数组长度 153
7.4.2向数组添加元素 154
7.4.3删除数组元素 156
7.4.4数组去重 159
7.4.5数组查找 160
7.4.6数组合并 162
7.4.7数组排序 164
7.5小结 164
7.6知识拓展 165
7.6.1数组函数速查表 165
7.6.2多维数组操作 167
第8章 正则表达式 171
8.1正则表达式介绍 171
8.2正则表达式语法 172
8.2.1普通字符 172
8.2.2字符转义 174
8.2.3元字符 174
8.2.4限定符 176
8.2.5定位符 176
8.2.6分组构造 177
8.2.7匹配模式 177
8.3 PCRE库 178
8.3.1 preg_grep()函数 178
8.3.2 preg_match()函数 179
8.3.3 preg_match_all()函数 180
8.3.4 preg_replace()函数 182
8.3.5 preg_replace_callback()函数 183
8.3.6 PORE相关函数汇总 185
8.4小结 185
8.5知识拓展 185
8.5.1正则表达式的分组 185
8.5.2贪婪与非贪婪匹配 187
8.5.3常用正则表达式参考 188
第9章 面向对象编程 195
9.1面向对象介绍 195
9.1.1对象 197
9.1.2类 199
9.2 PHP与面向对象 199
9.2.1类的声明 200
9.2.2成员方法 200
9.2.3类的实例化 201
9.2.4成员属性(成员变量) 202
9.2.5类中常量 204
9.2.6静态变量 204
9.2.7静态方法 205
9.3构造方法和析构方法 207
9.3.1构造方法 207
9.3.2析构方法 209
9.4类的继承和多态 211
9.4.1继承 211
9.4.2多态 215
9.4.3 “this->”与“::”的区别 216
9.5抽象类与接口 217
9.5.1抽象类 217
9.5.2接口 220
9.5.3 Trait 221
9.6高级特性 222
9.6.1 final的使用 222
9.6.2对象克隆 223
9.6.3检测对象类型 226
9.6.4魔术方法 227
9.7小结 230
9.8知识拓展 230
9.8.1命名规范 230
9.8.2缩紧与换行规范 233
9.8.3表达式书写规范 234
9.8.4流程控制语句书写规范 235
9.8.5类相关规范 237
第10章 错误与异常处理 239
10.1异常与错误概述 239
10.2错误处理 239
10.2.1错误的处理 239
10.2.2错误控制运算符 242
10.3异常处理 243
10.3.1异常的使用 243
10.3.2创建一个自定义的Exception类 244
10.3.3多个异常 245
10.3.4重新抛出异常 246
10.3.5设置顶层异常处理器 247
10.4 PHP错误类型与异常记录 247
10.4.1 PHP中的错误类型 247
10.4.2 PHP中与错误日志有关的配置 249
10.5小结 251
10.6知识拓展 251
10.6.1 PHP 7中的异常与错误处理 251
第11章 日期和时间 254
11.1操作系统时区 254
11.1.1时区划分 254
11.1.2 php.ini设置时区 255
11.2时间函数 257
11.2.1 Unix时间戳(Unix timestamp) 257
11.2.2日期和时间的获取 257
11.2.3 PHP日期时间和Unix时间戳转换 259
11.2.4日期校验 262
11.3小结 265
11.4知识拓展 265
11.4.1使用微秒计算程序运行时间 265
11.4.2输出世界时钟 267
第12章 PHP在Web开发中的应用 271
12.1 Web工作原理 271
12.1.1 Web工作详细介绍 271
12.1.2 HTTP协议 271
12.1.3 HTTPS协议 271
12.2 HTML表单 272
12.2.1表单结构 272
12.2.2创建表单 273
12.2.3表单元素——文本类型 274
12.2.4表单元素——选项框 280
12.2.5表单提交按钮 284
12.3表单传输 285
12.3.1表单GET传输 285
12.3.2表单POST传输 286
12.4表单编码类型 287
12.4.1 “application/x-www-form-urlencoded”编码类型 287
12.4.2 “multipart/form-data”编码类型 287
12.5 PHP和表单 289
12.5.1 $_GET全局变量 289
12.5.2 $_POST全局变量 290
12.5.3 $_FILES全局变量 291
12.6 Web URL 293
12.6.1 URL参数 293
12.6.2 PHP对URL参数进行转义 293
12.7小结 294
12.8知识拓展 294
12.8.1 $_REQUEST全局变量 295
第13章 AJAX技术 296
13.1 AJAX介绍 296
13.1.1 AJAX的使用场景 296
13.1.2 AJAX开发流程 296
13.2 AJAX应用 297
13.2.1 XMLHttpRequest对象 297
13.2.2发起AJAX请求 297
13.2.3 PHP中应用AJAX 299
13.3小结 302
13.4知识拓展 302
13.4.1浏览器调试网络请求 302
13.4.2浏览器同源策略 303
13.4.3 AJAX跨域请求 305
13.4.4获取响应的头部 311
第14章 Cookie与Session会话管理 313
14.1会话控制 313
14.2 Cookie的使用 313
14.2.1 Cookie概述 313
14.2.2设置Cookie 313
14.2.3查询Cookie 316
14.2.4修改Cookie 317
14.2.5删除Cookie 318
14.3 Session的使用 319
14.3.1 Session概述 319
14.3.2 Session的工作流程 319
14.3.3 Session的使用 319
14.3.4删除Session 321
14.4小结 324
14.5知识拓展 324
14.5.1 Cookie和Session对比 324
14.5.2 Session的细节讨论 325
第15章 文件和目录操作 327
15.1文件系统介绍 327
15.1.1文件类型 327
15.1.2文件权限 329
15.2文件操作 330
15.2.1打开文件 330
15.2.2文件读取 333
15.2.3文件写入 337
15.2.4文件上传 341
15.3目录操作 345
15.3.1打开和读取 345
15.3.2目录遍历 346
15.4小结 347
15.5知识拓展 348
15.5.1多文件上传 348
15.5.2文件系统函数表 353
第16章 MySQL数据库 357
16.1 MySQL介绍 357
16.2 MySQL工具介绍 357
16.2.1 MySQL控制台客户端 357
16.2.2 MySQL Workbench软件 358
16.3数据库管理 358
16.3.1创建数据库 358
16.3.2选择数据库 359
16.3.3查看数据库 360
16.3.4修改数据库 361
16.3.5删除数据库 361
16.4字段类型 362
16.4.1数值类型 362
16.4.2字符串类型 364
16.4.3日期/时间类型 364
16.5数据表操作 365
16.5.1创建数据表 365
16.5.2查看数据表 368
16.5.3修改数据表 369
16.5.4删除数据表 372
16.6数据库语句 373
16.6.1新增数据 373
16.6.2查询数据 373
16.6.3修改数据 374
16.6.4删除数据 374
16.6.5 replace操作 375
16.7数据表字符集 376
16.7.1查看字符集 376
16.7.2设置字符集 379
16.7.3处理乱码 380
16.8数据库索引 380
16.8.1索引介绍 380
16.8.2唯一索引 381
16.8.3普通索引 381
16.9小结 382
16.10知识拓展 382
16.10.1 MySQL关键字和保留字 382
第17章 PDO操作MySQL数据库 385
17.1 PDO介绍 385
17.1.1什么是PDO 385
17.1.2 PDO安装 385
17.2 PDO操作MySQL 386
17.2.1 PDO连接数据库 386
17.2.2 PDO操作数据库 387
17.3 PDO事务和错误处理 395
17.3.1事务介绍 395
17.3.2 PDO事务操作 395
17.3.3错误介绍 398
17.3.4 PDO错误处理 399
17.4小结 401
17.5知识拓展 401
17.5.1封装单例模式MySQL操作类 401
17.5.2 PDO预定义常量列表 409
第18章 Web开发中的加密技术 413
18.1加密技术概述与使用 413
18.1.1加密技术介绍 413
18.1.2对称加密算法 415
18.1.3非对称加密算法 415
18.1.4使用MD5加密 416
18.1.5使用SHA 1加密 420
18.1.6使用AES加密 421
18.1.7使用RSA加密 424
18.1.8使用Bcrypt加密 427
18.2加密技术使用场景 429
18.2.1密码存储 429
18.2.2 Base64加密 429
18.3小结 430
18.4知识拓展 431
第19章 图形图像处理技术 434
19.1 PHP GD库 434
19.1.1 GD库介绍 434
19.1.2 PHP GD库函数 434
19.2画布 435
19.2.1画布介绍 435
19.2.2画布创建 435
19.2.3画布输出 437
19.2.4画布关闭 440
19.3图像绘制 441
19.3.1区域填充 441
19.3.2绘制直线 443
19.3.3绘制矩形 444
19.3.4绘制多边形 445
19.3.5绘制椭圆 446
19.3.6绘制文字 448
19.3.7图片裁切 450
19.3.8 图片旋转 451
19.4生成验证码 452
19.4.1生成随机数字 452
19.4.2数字倾斜 453
19.4.3背景色干扰 455
19.4.4线条干扰 456
19.4.5完整验证码演示 457
19.5小结 458
19.6知识拓展 459
19.6.1其他PHP图像绘制技术 459
19.6.2图像增加水印 460
第20章 PHP操作JSON和XML 461
20.1 PHP与JSON 461
20.1.1 JSON介绍 461
20.1.2 PHP和JSON 464
20.2 PHP与XML 466
20.2.1 XML介绍 466
20.2.2 XML语法 466
20.2.3 PHP和XML 468
20.2.4 SimpleXML类库 472
20.3小结 473
20.4知识拓展 473
20.4.1编写一个XML操作类 473
20.4.2 JSON和XML的对比 478
第21章 Laravel博客项目实战 480
21.1开发环境介绍 480
21.1.1 Valet和Homestead 480
21.1.2 Homestead环境介绍 480
21.2组件式开发与Composer的使用 481
21.2.1什么是组件式开发 481
21.2.2 Composer简介 482
21.2.3 Composer的安装 482
21.2.4 Composer快速入门 482
21.3 Laravel框架介绍 487
21.3.1 Laravel框架目录介绍 487
21.3.2 Laravel框架中的MVC模式 488
21.4 Laravel核心概念 489
21.4.1服务容器 489
21.4.2服务提供者 491
21.5博客项目实战 493
21.5.1创建项目 493
21.5.2配置信息 496
21.5.3基础布局 499
21.5.4用户模块 505
21.5.5专题模块 544
21.5.6文章模块 548
21.6小结 582