图书目录

目    录

第1篇  基 础 入 门

第1章  揭开PHP的神秘面纱——我的

第一个PHP程序 3

1.1  认识PHP 4

1.1.1  什么是PHP 4

1.1.2  PHP的发展历程 4

1.1.3  PHP语言的优势 5

1.2  PHP 7的新特征 5

1.3  PHP服务器概述 7

1.4  新手的福音——安装WampServer集成

开发环境 8

1.5  常用的开发利器 11

1.5.1  PHP代码开发工具 11

1.5.2  网页设计工具 12

1.5.3  文本编辑工具 12

1.6  案例实战——我的第一个PHP程序 13

1.7  如何能学好PHP 7 14

1.8  疑难解惑 15

第2章  零基础开始学习——PHP的基本

语法 17

2.1 PHP语言标识风格 18

2.2 熟悉编码规范 18

2.2.1 什么是编码规范 19

2.2.2 PHP的一些编码规范 19

2.3 常量 21

2.3.1 声明和使用常量 21

2.3.2 使用系统预定义常量 21

2.4 变量 23

2.4.1 PHP中的变量声明 23

2.4.2 可变变量和变量的引用 24

2.4.3 变量作用域 25

2.4.4  变量的销毁 27

2.5 理解变量的类型 28

2.5.1 什么是类型 28

2.5.2 整型(integer) 29

2.5.3 浮点型(float或double) 29

2.5.4 布尔型(boolean) 29

2.5.5 字符串型(string) 29

2.5.6 数组型(array) 30

2.5.7 对象型(object) 32

2.5.8 NULL型 32

2.5.9 资源类型(Resource) 32

2.5.10 数据类型之间的相互转换 32

2.6  PHP 7的新变化——声明标量类型和

函数返回值类型 33

2.7 使用运算符 35

2.7.1 算术运算符 35

2.7.2 字符串连接符 36

2.7.3 赋值运算符 36

2.7.4 比较运算符 37

2.7.5 逻辑运算符 38

2.7.6 按位运算符 38

2.7.7 否定控制运算符 39

2.7.8 错误控制运算符 39

2.7.9 三元运算符 39

2.7.10 运算符的优先级和结合规则 39

2.8 PHP 7的新变化——合并运算符和

组合运算符 40

2.9 PHP中的表达式 40

2.10 案例实战——创建多维数组 41

2.11 疑难解惑 42

第3章  实现定制功能——函数的应用 43

3.1 认识函数 44

3.2 内置函数 44

3.2.1  数学函数 44

3.2.2  变量相关的函数 45

3.3 自定义函数 46

3.3.1  定义和调用函数 46

3.3.2 向函数传递参数值 47

3.3.3 向函数传递参数引用 48

3.3.4 从函数中返回值 48

3.3.5 引用函数 49

3.3.6 取消函数引用 50

3.3.7 变量函数 50

3.4 PHP 7的新变化——新增intdiv()函数 51

3.5  包含文件 51

3.5.1  require和include 52

3.5.2  include_once和require_once 52

3.6 疑难解惑 53

第4章  程序的执行方向——程序控制

结构 55

4.1  流程控制概述 56

4.2 条件控制结构 56

4.2.1 单一条件分支结构(if语句) 56

4.2.2 双向条件分支结构(if…else

语句) 57

4.2.3 多向条件分支结构(elseif

语句) 57

4.2.4 多向条件分支结构(switch

语句) 58

4.3 循环控制结构 60

4.3.1 while循环语句 60

4.3.2 do...while循环语句 60

4.3.3 for循环语句 61

4.3.4 foreach循环语句 62

4.3.5 流程控制的另一种书写格式 62

4.3.6 使用break/continue语句

跳出循环 64

4.4 案例实战1——条件分支结构的应用 65

4.5 案例实战2——循环控制结构的应用 66

4.6 疑难解惑 67

第5章  不可不说的文本数据——

字符串 69

5.1 字符串的单引号和双引号 70

5.2 字符串的连接符 71

5.3 字符串的基本操作 72

5.3.1 手动和自动转义字符串中的

字符 72

5.3.2 计算字符串的长度 72

5.3.3 字符串单词统计 73

5.3.4 清理字符串中的空格 74

5.3.5 字符串的切分与组合 74

5.3.6 字符串子串的截取 75

5.3.7 字符串子串的替换 76

5.3.8 字符串查找 77

5.4 疑难解惑 77

第6章  匹配文本有妙招——正则

表达式 79

6.1 什么是正则表达式 80

6.2 正则表达式的语法规则 80

6.2.1 方括号([ ]) 80

6.2.2 连字符(-) 80

6.2.3 点号字符(.) 80

6.2.4 限定符(+*?{n,m}) 81

6.2.5 行定位符(^和$) 81

6.2.6 排除字符([^]) 81

6.2.7 括号字符(()) 81

6.2.8 选择字符(|) 81

6.2.9 转义字符与反斜杠 81

6.2.10 认证E-mail的正则表达式 82

6.3  Perl 兼容正则表达式函数 82

6.3.1 使用正则表达式对字符串

进行匹配 82

6.3.2 使用正则表达式替换字符串的

子串 84

6.3.3 使用正则表达式切分字符串 85

6.4 案例实战——创建商品在线订单页面 85

6.5 疑难解惑 89

  

  

  

第2篇  核 心 技 术

第7章  特殊的元素集合——数组 93

7.1 什么是数组 94

7.2 数组类型 94

7.2.1 数字索引数组 94

7.2.2 关联索引数组 95

7.3 数组的结构 95

7.3.1 一维数组 96

7.3.2 多维数组 96

7.4 遍历数组 98

7.4.1 遍历一维数字索引数组 98

7.4.2 遍历一维关联索引数组 98

7.4.3 遍历多维数组 99

7.5 数组排序 100

7.5.1 一维数组排序 100

7.5.2 多维数组排序 102

7.6 字符串与数组的转换 103

7.7 向数组中添加和删除元素 104

7.7.1 向数组中添加元素 104

7.7.2 从数组中删除元素 105

7.8 查询数组中的指定元素 106

7.9 统计数组元素的个数 108

7.10 删除数组中重复的元素 109

7.11 调换数组中的键值和元素值 110

7.12 数组的序列化 111

7.13 疑难解惑 112

第8章  表单的动态效果——PHP与

Web页面交互 113

8.1 创建动态内容 114

8.2 表单与PHP 114

8.3 设计表单元素 115

8.3.1 表单的基本结构 115

8.3.2 文本框 115

8.3.3 复选框 116

8.3.4 单选按钮 118

8.3.5 下拉列表 119

8.3.6 重置按钮和提交按钮 120

8.4 传递数据 123

8.4.1 用POST方式传递数据 123

8.4.2 用GET方式传递数据 123

8.5 PHP获取表单传递数据的方法 124

8.6 PHP对URL传递的参数进行编码 125

8.7 案例实战——团购商品订单表 126

8.8 疑难解惑 127

第9章  时间很重要——管理日期

和时间 129

9.1 系统时区的设置 130

9.1.1 时区划分 130

9.1.2 时区设置 130

9.2 PHP的日期和时间函数 130

9.2.1 关于Unix时间戳 130

9.2.2 获取当前的时间戳 131

9.2.3 获取当前的日期和时间 131

9.2.4 使用时间戳获取日期信息 132

9.2.5 检验日期的有效性 135

9.2.6 输出格式化时间戳的日期

和时间 135

9.2.7 显示本地化的日期和时间 137

9.2.8 将日期和时间解析为Unix

时间戳 138

9.2.9 日期时间在PHP和MySQL

数据格式之间转换 138

9.3 案例实战1——实现倒计时功能 139

9.4 案例实战2——比较两个时间的大小 139

9.5 疑难解惑 140

第10章  保持HTTP连接状态——

 Cookie和会话管理 141

10.1 Cookie的基本操作 142

10.1.1 什么是Cookie 142

10.1.2 创建Cookie 142

10.1.3 读取Cookie 143

10.1.4 删除Cookie 144

10.2 认识Session 145

10.2.1 什么是Session 145

10.2.2 Session的基本功能 146

10.2.3 Cookie与Session 146

10.2.4 储存Session ID在Cookie

 或URL中 146

10.3 会话管理 146

10.3.1 创建会话 146

10.3.2 注册会话变量 147

10.3.3 使用会话变量 148

10.3.4 注销和销毁会话变量 148

10.4 案例实战——综合应用会话管理 149

10.5 疑难解惑 150

第11章  设计图形图像——GD绘图与

 图像处理 151

11.1 在PHP中加载GD库 152

11.2 图形图像的典型应用案例 154

11.2.1 创建一个简单的图像 155

11.2.2 使用GD2的函数在图片上

 添加文字 156

11.2.3 使用TrueType字体处理中文

 生成图片 157

11.3 Jpgraph库的基本操作 159

11.3.1 Jpgraph的安装 160

11.3.2 Jpgraph的配置 160

11.4 案例实战1——制作圆形统计图 161

11.5 案例实战2——制作3D饼形

 统计图 163

11.6 疑难解惑 164

第12章  不可避免的问题——错误处理

 和异常处理 167

12.1  常见的错误和异常 168

12.2  错误处理 171

12.2.1  php.ini中的错误处理机制 171

12.2.2  应用DIE语句来调试 172

12.2.3  自定义错误和错误触发器 172

12.2.4  错误记录 175

12.3  PHP 7新变化——改变了错误的报告

 方式 176

12.4  异常处理 177

12.4.1  异常的基本处理方法 177

12.4.2  自定义的异常处理器 179

12.4.3  处理多个异常 180

12.4.4  设置顶层异常处理器 181

12.5  案例实战——处理异常或错误 182

12.6  疑难解惑 183

第13章  与外界的交流——操作文件

 与目录 185

13.1 查看文件和目录 186

13.1.1 查看文件名称 186

13.1.2 查看目录名称 186

13.1.3 查看文件真实目录 187

13.2 查看文件信息 187

13.2.1 查看文件的类型 187

13.2.2 查看文件的访问和修改时间 188

13.3 文件操作 188

13.3.1  打开文件和关闭文件 189

13.3.2  读取文件 190

13.3.3 文件数据写入 191

13.3.4 重命名和移动文件 193

13.3.5 复制文件 193

13.3.6 删除文件 194

13.4 目录操作 194

13.5 上传文件 198

13.5.1 全局变量$_FILES 198

13.5.2 文件上传 199

13.6 案例实战——编写访客计数器 201

13.7 疑难解惑 202

第14章  主流的编程思想——面向

 对象编程 203

14.1 类和对象的介绍 204

14.2 类的基本操作 205

14.2.1 类的声明 205

14.2.2 成员属性 205

14.2.3 成员方法 206

14.2.4 类的实例化 206

14.2.5 访问类中的成员属性和方法 207

14.3 构造方法和析构方法 208

14.4 访问器 210

14.5 类的继承 211

14.6 抽象类和接口 212

14.6.1 抽象类 212

14.6.2 接口 213

14.7 面向对象的多态性 215

14.7.1 通过继承实现多态 215

14.7.2 通过接口实现多态 216

14.8 PHP 7的新变化——支持匿名类 217

14.9 疑难解惑 218

第15章  提升网站安全的武器——PHP

 加密技术 219

15.1  使用PHP加密函数 220

15.1.1  实例1——使用md5()函数进行

 加密 220

15.1.2  实例2——使用crypt()函数

 进行加密 220

15.1.3  实例3——使用sha1()函数进行

 加密 222

15.2  使用PHP加密扩展库 222

15.2.1  实例4——安装和使用Mcrypt

 扩展库 222

15.2.2  实例5——使用Mhash

 扩展库 224

15.3  疑难解惑 226

  

第3篇  高 级 技 能

第16章  管理MySQL的利器——

 phpMyAdmin操作MySQL

 数据库 229

16.1 什么是MySQL 230

16.1.1 客户-服务器软件 230

16.1.2  数据库的原理 230

16.1.3 MySQL版本 231

16.1.4 MySQL的优势 232

16.2  创建MySQL数据库和数据表 232

16.2.1  启动phpMyAdmin管理程序 232

16.2.2  创建数据库 233

16.2.3  认识数据表的字段 234

16.2.4  创建数据表 236

16.2.5  添加数据 238

16.3  加密MySQL数据库 239

16.3.1  MySQL数据库的安全问题 239

16.3.2  为MySQL管理账号加上

 密码 240

16.4  数据库的备份与还原 241

16.4.1  数据库的备份 241

16.4.2  数据库的还原 242

16.5  疑难解惑 243

第17章  数据库编程——MySQL数据库

 与SQL查询 245

17.1  安装与配置MySQL 5.7 246

17.1.1  安装MySQL 5.7 246

17.1.2  配置MySQL 5.7 248

17.2  启动服务并登录MySQL数据库 251

17.2.1  启动MySQL服务 251

17.2.2  登录MySQL数据库 252

17.3 MySQL数据库的基本操作 254

17.3.1 创建数据库 254

17.3.2 查看数据库 254

17.3.3 删除数据库 255

17.3.4 选择数据库 255

17.4 MySQL数据表的基本操作 256

17.4.1 创建数据表 256

17.4.2 查看数据表的结构 257

17.4.3 修改数据表结构 258

17.4.4 删除数据表 259

17.5 MySQL语句的操作 259

17.5.1 插入记录 259

17.5.2 查询记录 260

17.5.3 修改记录 261

17.5.4 删除记录 261

17.6 MySQL数据库的备份与还原 261

17.6.1 数据备份 261

17.6.2 数据还原 268

17.7 疑难解惑 270

第18章  最经典的方法——使用MySQLi

 操作MySQL 271

18.1 PHP访问MySQL数据库的一般

 步骤 272

18.2 连接数据库前的准备工作 272

18.3 PHP操作MySQL数据库 273

18.3.1 连接MySQL服务器 273

18.3.2 选择数据库 274

18.3.3 创建数据库 275

18.3.4 创建数据表 276

18.3.5 添加数据 278

18.3.6 一次插入多条数据 279

18.3.7 读取数据 281

18.3.8 释放资源 282

18.3.9 关闭连接 282

18.4 案例实战1——动态添加员工信息 283

18.5  案例实战2——动态查询数据信息 284

18.6 提升安全性——防止SQL注入的

 攻击 286

18.7 疑难解惑 287

第19章  最兼容的方法——使用PDO

 操作MySQL数据库 289

19.1 认识PDO 290

19.2 PDO的安装 290

19.3 使用PDO操作MySQL 291

19.3.1 连接MySQL数据库 292

19.3.2 创建数据库 293

19.3.3 创建数据表 294

19.3.4 添加数据 295

19.3.5 一次插入多条数据 296

19.3.6 读取数据 296

19.4 提升安全性——防止SQL注入的

 攻击 298

19.5 疑难解惑 299

第20章  跨平台的数据通信——PHP

 与XML技术 301

20.1  理解XML概念 302

20.2  XML语法基础 303

20.2.1  XML文档组成和声明 303

20.2.2  XML元素介绍 304

20.2.3  处理指令实体引用 306

20.2.4  XML命名空间 307

20.2.5  XML DTD 308

20.2.6  使用CDATA标签 309

20.3  将XML文档转换为HTML加以

 输出 309

20.4  在PHP中创建XML文档 310

20.5  使用SimpleXML扩展 310

20.5.1  创建SimpleXMLElement

 对象 310

20.5.2  访问特定节点元素和属性 312

20.5.3  添加XML元素和属性 312

20.6  案例实战——动态创建XML文档 313

20.7  疑难解惑 314

第21章  异步通信更高效——PHP与

 Ajax技术 315

21.1  Ajax概述 316

21.1.1  什么是Ajax 316

21.1.2  Ajax的工作过程 319

21.1.3  Ajax的关键元素 319

21.1.4  CSS与Ajax 320

21.2  Ajax的核心技术 320

21.2.1  全面剖析XMLHttpRequest

 对象 320

21.2.2  发出Ajax请求 322

21.2.3  处理服务器响应 324

21.3  案例实战1——应用Ajax技术检查

 用户名 325

21.4  案例实战2——应用Ajax技术实现

 投票功能 328

21.5  疑难解惑 331

第22章  增强PHP的功能——PHP

 与jQuery技术 333

22.1 jQuery概述 334

22.1.1 jQuery能做什么 334

22.1.2 jQuery的特点 334

22.1.3 jQuery的技术优势 335

22.2 下载并配置jQuery 337

22.2.1 下载jQuery 337

22.2.2 配置jQuery 339

22.3 我的第一个jQuery程序 339

22.3.1 开发前的一些准备工作 339

22.3.2 具体的程序开发 340

22.4  jQuery选择器 340

22.4.1  jQuery的工厂函数 340

22.4.2  常见选择器 341

22.5  jQuery控制页面 343

22.6  jQuery的事件处理 344

22.6.1  页面加载响应事件 344

22.6.2  事件捕获与事件冒泡 345

22.7  jQuery的动画效果 346

22.8  案例实战——PHP与jQuery技术的

 应用 347

22.9  疑难解惑 349

第23章  灵活而强大的框架——

 Zend Frame-work框架 351

23.1  什么是Zend Framework框架 352

23.2  Zend Framework的目录结构 352

23.3  Zend Framework的安装与测试 353

23.3.1  实例1——Zend Framework的

 安装 353

23.3.2  实例2——创建一个新的Zend 

 Framework应用 353

23.4  PHP与Zend Framework的基本

 操作 356

23.4.1  实例3——在Zend Framework

 应用中创建控制层文件 356

23.4.2  实例4——在Zend Framework的

 控制层文件中添加一个action 357

23.4.3  实例5——在Zend Framework

 中创建布局(layout) 358

23.4.4  实例6——在Zend Framework

 中的数据库操作 359

23.4.5  实例7——在Zend Framework

 中创建表单 360

23.5  疑难解惑 362

  

第4篇  项 目 实 战

第24章  项目实训1——开发验证码

 系统 365

24.1 系统分析 366

24.1.1 学习目标 366

24.1.2 需求分析 366

24.1.3 系统文档 366

24.2 系统的代码实现 367

24.2.1 系统主界面 367

24.2.2 生成并输入验证码功能 368

24.2.3 验证码控制器 369

24.3  系统测试 371

  

第25章  项目实训2——开发个人博客

 系统 373

25.1 系统的需求分析 374

25.1.1 学习目标 374

25.1.2 需求分析 374

25.1.3 系统文档 374

25.2 数据库分析 375

25.2.1 分析数据库 375

25.2.2 创建数据表 375

25.3 个人博客系统的代码实现 376

25.3.1 博客数据模型的文件 376

25.3.2 个人博客系统的主页面 380

25.3.3 个人博客新建和编辑页面 382

25.3.4 个人博客删除页面 384

25.4 系统测试 385

第26章  项目实训3——开发用户权限

 系统 387

26.1 必备知识 388

26.2 系统的需求分析 389

26.2.1 学习目标 389

26.2.2 需求分析 389

26.2.3 系统文档 389

26.3 数据库分析 390

26.3.1 分析数据库 390

26.3.2 创建数据表 391

  

26.4 用户权限系统的代码实现 393

26.4.1 系统入口文件 393

26.4.2 页面控制器 393

26.4.3 用户登录页面 395

26.4.4 数据模型的文件 397

26.4.5 用户数据模型页面 399

26.4.6 角色数据模型页面 401

26.4.7 权限数据模型页面 402

26.4.8 权限显示页面 403

26.5 系统测试 404

第27章  项目实训4——开发社区市场

 系统 407

27.1 必备知识 408

27.2 系统的需求分析 408

27.2.1 学习目标 408

27.2.2 需求分析 409

27.2.3 系统文档 409

27.3 还原数据库 410

27.4 社区市场系统的代码实现 411

27.4.1 系统入口文件 411

27.4.2 项目配置文件 411

27.4.3 物品与需求展示控制器 414

27.4.4 用户后台控制器 434

27.4.5 数据模型的文件 448

27.5 系统测试 450