图书目录

目    录

第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