第1章 初识PHP 1
1.1 PHP的来龙去脉 1
1.1.1 PHP的概念 1
1.1.2 PHP的发展历程 2
1.1.3 PHP的优势 2
1.2 PHP能干什么 3
1.3 PHP 7的新特点 4
1.4 PHP常用开发工具 6
1.4.1 PHP代码开发工具 6
1.4.2 网页设计工具 7
1.4.3 文本编辑工具 7
1.5 高手甜点 8
第2章 PHP 7服务器环境配置 9
2.1 PHP服务器概述 9
2.2 安装PHP 7前的准备工作 10
2.2.1 软硬件环境 10
2.2.2 获取PHP 7安装资源包 10
2.3 PHP 7+IIS服务器安装配置 12
2.3.1 IIS简介及其安装 12
2.3.2 PHP的安装 13
2.3.3 虚拟目录的设置 16
2.4 PHP 7+Apache服务器的环境搭建 17
2.4.1 Apache简介 17
2.4.2 关闭原有的网站服务器 18
2.4.3 安装Apache 18
2.4.4 将PHP与Apache建立关联 19
2.5 新手的福音——PHP环境的集成软件 20
2.6 实战演练——我的第一个PHP程序 23
2.7 高手甜点 24
第3章 PHP的基本语法 25
3.1 PHP标识符 25
3.1.1 短风格 25
3.1.2 script风格 26
3.1.3 ASP风格 26
3.2 编码规范 26
3.2.1 什么是编码规范 26
3.2.2 PHP中的编码规范 27
3.3 常量 28
3.3.1 声明和使用常量 29
3.3.2 内置常量 29
3.4 变量 31
3.4.1 PHP中的变量声明 31
3.4.2 可变变量与变量的引用 32
3.4.3 变量作用域 33
3.4.4 变量的销毁 36
3.5 数据类型 37
3.5.1 什么是类型 37
3.5.2 整型 38
3.5.3 浮点型 38
3.5.4 布尔型 38
3.5.5 字符串型 38
3.5.6 数组型 39
3.5.7 对象型 41
3.5.8 NULL型 42
3.5.9 资源类型 42
3.5.10 数据类型之间的相互转换 42
3.6 标量类型的声明 43
3.7 运算符 44
3.7.1 算术运算符 44
3.7.2 字符串运算符 45
3.7.3 赋值运算符 46
3.7.4 比较运算符 46
3.7.5 逻辑运算符 47
3.7.6 按位运算符 48
3.7.7 否定控制运算符 49
3.7.8 错误控制运算符 49
3.7.9 三元运算符 50
3.7.10 运算符的优先级和结合规则 50
3.8 表达式 50
3.9 实战演练——创建多维数组 51
3.10 高手甜点 51
第4章 PHP的语言结构 53
4.1 内置函数 53
4.2 自定义函数 54
4.2.1 自定义和调用函数 54
4.2.2 向函数传递参数值 55
4.2.3 向函数传递参数引用 55
4.2.4 从函数中返回值 56
4.2.5 对函数的引用 57
4.2.6 对函数取消引用 58
4.3 包含文件 58
4.3.1 require和include 58
4.3.2 include once和require once 59
4.4 流程控制 60
4.4.1 条件控制结构 60
4.4.2 循环控制结构 65
4.5 实战演练1——条件分支结构综合应用 72
4.6 实战演练2——循环控制结构综合应用 73
4.7 高手甜点 74
第5章 字符串和正则表达式 75
5.1 字符串的单引号和双引号 75
5.2 字符串的连接符 77
5.3 字符串的基本操作 78
5.3.1 手动和自动转义字符串中的字符 78
5.3.2 计算字符串的长度 78
5.3.3 字符串单词统计 79
5.3.4 清理字符串中的空格 80
5.3.5 字符串的切分与组合 80
5.3.6 字符串子串的截取 81
5.3.7 字符串子串替换 82
5.3.8 字符串查找 83
5.3.9 大小写转换 84
5.4 什么是正则表达式 85
5.5 正则表达式语法规则 85
5.6 实战演练——创建酒店系统在线订房表 90
5.7 高手甜点 93
第6章 PHP数组 94
6.1 什么是数组 94
6.2 数组的类型 95
6.2.1 数字索引数组 95
6.2.2 关联索引数组 96
6.3 PHP常量数组 97
6.4 数组构造 97
6.4.1 一维数组 97
6.4.2 多维数组 97
6.5 遍历数组 99
6.5.1 遍历一维数字索引数组 99
6.5.2 遍历一维联合索引数组 100
6.5.3 遍历多维数组 101
6.6 数组排序 102
6.6.1 一维数组排序 102
6.6.2 多维数组排序 104
6.7 字符串与数组的转换 105
6.8 向数组中添加和删除元素 106
6.8.1 向数组中添加元素 106
6.8.2 从数组中删除元素 107
6.9 查询数组中指定元素 109
6.10 统计数组元素个数 110
6.11 删除数组中的重复元素 112
6.12 调换数组中的键值和元素值 113
6.13 实战演练——数组的序列化 113
6.14 高手甜点 114
第7章 时间和日期 115
7.1 系统时区设置 115
7.1.1 时区划分 115
7.1.2 时区设置 116
7.2 PHP日期和时间函数 116
7.2.1 关于UNIX时间戳 116
7.2.2 获取当前时间戳 116
7.2.3 获取当前日期和时间 117
7.2.4 使用时间戳获取日期信息 118
7.2.5 检验日期的有效性 120
7.2.6 输出格式化时间戳的日期和时间 121
7.2.7 显示本地化的日期和时间 122
7.2.8 将日期和时间解析为UNIX时间戳 123
7.2.9 日期和时间在PHP和MySQL数据格式之间的转换 124
7.3 实战演练1——比较两个时间的大小 124
7.4 实战演练2——实现倒计时功能 125
7.5 高手甜点 126
第8章 面向对象编程 127
8.1 类和对象的介绍 127
8.2 PHP中类的操作 128
8.2.1 类的声明 128
8.2.2 成员属性 129
8.2.3 成员方法 129
8.2.4 类的实例化 130
8.2.5 访问类中的成员属性和方法 130
8.3 构造方法和析构方法 132
8.4 访问方法 134
8.5 类的继承 136
8.6 高级特性 137
8.6.1 静态属性和方法 137
8.6.2 final类和方法 138
8.7 抽象类和接口 139
8.7.1 抽象类 139
8.7.2 接口 140
8.8 面向对象的多态性 142
8.8.1 通过继承实现多态 142
8.8.2 通过接口实现多态 144
8.9 高手甜点 145
第9章 错误处理和异常处理 146
9.1 常见的错误和异常 146
9.2 错误处理 150
9.2.1 php.ini中的错误处理机制 150
9.2.2 应用DIE语句调试 150
9.2.3 自定义错误和错误触发器 151
9.2.4 错误记录 154
9.3 异常处理 155
9.3.1 异常的基本处理方法 155
9.3.2 自定义的异常处理器 157
9.3.3 处理多个异常 159
9.3.4 设置顶层异常处理器 160
9.4 实战演练——处理异常或错误 161
9.5 高手甜点 162
第10章 PHP与Web页面交互 164
10.1 使用动态内容 164
10.2 表单与PHP 165
10.3 表单设计 166
10.3.1 表单基本结构 166
10.3.2 文本框 166
10.3.3 选项框 167
10.3.4 单选按钮 169
10.3.5 下拉列表 170
10.3.6 重置按钮 171
10.3.7 提交按钮 172
10.4 传递数据的两种方法 174
10.4.1 用POST方式传递数据 174
10.4.2 用GET方式传递数据 175
10.5 PHP获取表单传递数据的方法 176
10.6 PHP对URL传递的参数进行编码 176
10.7 实战演练——PHP与Web表单的综合应用 177
10.8 高手甜点 179
第11章 文件与目录操作 181
11.1 文件操作 181
11.1.1 文件数据的写入 181
11.1.2 文件数据的读取 185
11.2 目录操作 186
11.3 文件的上传 191
11.4 实战演练——编写文本类型的访客计算器 193
11.5 高手甜点 194
第12章 图形图像处理 195
12.1 在PHP中加载GD库 195
12.2 图形图像的典型应用案例 197
12.2.1 创建一个简单的图像 197
12.2.2 使用GD2函数在照片上添加文字 199
12.2.3 使用TrueType字体处理中文生成图片 200
12.3 Jpgraph库的使用 202
12.3.1 Jpgraph的安装 203
12.3.2 Jpgraph的配置 203
12.3.3 制作柱形图与折线图统计图 203
12.3.4 制作圆形统计图 205
12.4 实战演练——制作3D饼形统计图 207
12.5 高手甜点 208
第13章 Cookie和会话管理 210
13.1 Cookie基本操作 210
13.1.1 什么是Cookie 210
13.1.2 创建Cookie 211
13.1.3 读取Cookie 211
13.1.4 删除Cookie 212
13.2 认识Session 214
13.2.1 什么是Session 214
13.2.2 Session的基本功能 214
13.2.3 Cookie与Session 214
13.2.4 在Cookie或URL中存储Session ID 215
13.3 会话管理 215
13.3.1 创建会话 215
13.3.2 注册会话变量 216
13.3.3 使用会话变量 216
13.3.4 注销和销毁会话变量 217
13.4 实战演练——会话管理的综合应用 218
13.5 高手甜点 219
第14章 MySQL数据库基础 221
14.1 什么是MySQL 221
14.1.1 客户机/服务器结构 221
14.1.2 MySQL版本 222
14.1.3 MySQL优势 223
14.2 启动服务并登录MySQL数据库 223
14.2.1 启动MySQL服务 223
14.2.2 登录MySQL数据库 224
14.2.3 配置Path变量 226
14.3 MySQL数据库的基本操作 228
14.3.1 创建数据库 228
14.3.2 查看数据库 228
14.3.3 删除数据库 229
14.3.4 选择数据库 229
14.4 MySQL数据表的基本操作 230
14.4.1 创建数据表 230
14.4.2 查看数据表 231
14.4.3 修改数据表 233
14.4.4 删除数据表 234
14.5 MySQL语句的操作 234
14.5.1 插入记录 234
14.5.2 查询记录 235
14.5.3 修改记录 235
14.5.4 删除记录 236
14.6 MySQL数据库的备份与还原 236
14.6.1 数据备份 236
14.6.2 数据还原 243
14.7 高手甜点 245
第15章 PHP操作MySQL数据库 247
15.1 PHP访问MySQL数据库的一般步骤 247
15.2 连接数据库前的准备工作 248
15.3 访问数据库 249
15.3.1 使用mysqli connect()函数连接MySQL服务器 249
15.3.2 使用mysqli_ select db()函数更改默认的数据库 250
15.3.3 使用mysqli close()函数关闭MySQL连接 251
15.3.4 使用mysqli-query()函数执行SQL语句 251
15.3.5 获取查询结果集中的记录数 252
15.3.6 获取结果集中的一条记录作为枚举数组 253
15.3.7 获取结果集中的记录作为关联数组 254
15.3.8 获取结果集中的记录作为对象 255
15.3.9 使用mysqli_ fetch array()函数获取结果集记录 255
15.3.10 使用mysqli_free result()函数释放资源 256
15.4 实战演练1—— PHP操作数据库 256
15.5 实战演练2——使用insert语句动态添加用户信息 258
15.6 实战演练3—使用select语句查询数据信息 260
15.7 高手甜点 262
第16章 PDO数据库抽象类库 263
16.1 PDO概述 263
16.2 PDO的安装 264
16.3 使用PDO操作MySQL 264
16.3.1 连接MySQL数据库的方法 265
16.3.2 使用PDO时的try catch错误处理结构 265
16.3.3 使用PDO执行SQL的选择语句 268
16.3.4 使用PDO获取返回数据的类方法 268
16.3.5 使用PDO执行SQL的添加、修改语句 271
16.3.6 使用PDO执行SQL的删除语句 271
16.4 实战演练——PDO的prepare表述 272
16.5 高手甜点 274
第17章 JavaScript编程基础 275
17.1 认识JavaScript 275
17.1.1 什么是JavaScript 275
17.1.2 JavaScript的特点 276
17.2 JavaScript在HTML中的使用 277
17.2.1 在HTML网页头中嵌入JavaScript代码 277
17.2.2 在HTML网页中嵌入JavaScript代码 278
17.2.3 在HTML网页的元素事件中嵌入JavaScript代码 279
17.2.4 在HTML中调用已经存在的JavaScript文件 280
17.2.5 通过JavaScript伪URL引入JavaScript脚本代码 281
17.3 JavaScript的基本语法 282
17.3.1 执行顺序 282
17.3.2 区分大小写 283
17.3.3 分号与空格 283
17.3.4 对代码行进行折行 283
17.3.5 注释 283
17.4 JavaScript的数据结构 285
17.4.1 标识符 285
17.4.2 关键字 286
17.4.3 保留字 286
17.4.4 常量 287
17.4.5 变量 287
17.5 代码中的数据类型 289
17.5.1 typeof运算符 289
17.5.2 Undefined类型 291
17.5.3 Null类型 291
17.5.4 Boolean类型 292
17.5.5 Number类型 293
17.5.6 String类型 294
17.6 条件判断语句 294
17.6.1 if语句 294
17.6.2 if…else语句 296
17.6.3 switch语句 297
17.7 循环控制语句 299
17.7.1 while语句 299
17.7.2 do…while语句 300
17.7.3 for循环 301
17.8 在PHP中调用JavaScript代码 302
17.8.1 验证表单元素的值是否为空 302
17.8.2 实现即时验证效果 303
17.9 实战演练——制作树形菜单 306
17.10 高手甜点 312
第18章 PHP与XML技术 313
18.1 XML概念 313
18.2 XML语法基础 315
18.2.1 XML文档的组成和声明 315
18.2.2 XML元素介绍 316
18.2.3 实体引用 319
18.2.4 XML命名空间 319
18.2.5 XML DTD 320
18.2.6 使用CDATA标记 321
18.3 将XML文档转换为HTML加以输出 321
18.4 在PHP中创建XML文档 322
18.5 使用SimpleXML扩展 323
18.5.1 创建SimpleXMLElement对象 323
18.5.2 访问特定节点元素和属性 324
18.5.3 添加XML元素和属性 325
18.6 实战演练——动态创建XML文档 326
18.7 高手甜点 327
第19章 PHP与Ajax的综合应用 328
19.1 Ajax概述 328
19.1.1 什么是Ajax 328
19.1.2 Ajax的关键元素 331
19.1.3 CSS与Ajax 332
19.2 Ajax快速入门 332
19.2.1 全面剖析XMLHttpRequest对象 333
19.2.2 发出Ajax请求 335
19.2.3 处理服务器响应 336
19.3 在PHP中应用Ajax技术 338
19.4 高手甜点 343
第20章 Smarty模板 344
20.1 MVC概述 344
20.2 什么是模板引擎 345
20.3 Smarty概述 346
20.3.1 什么是Smarty 346
20.3.2 Smarty与MVC 346
20.4 Smarty的安装和配置 347
20.4.1 Smarty的下载和安装 347
20.4.2 第一个Smarty程序 347
20.5 Smarty模板设计 348
20.5.1 Smarty模板文件 348
20.5.2 Smarty标识 349
20.5.3 Smarty变量 351
20.5.4 Smarty数组 352
20.6 Smarty中的流程控制语句 353
20.7 高手甜点 355
第21章 Zend Framework 356
21.1 什么是Zend Framework 356
21.2 Zend Framework的目录结构 357
21.3 Zend Framework的安装与使用 357
21.3.1 Zend Framework的安装 357
21.3.2 创建一个新的Zend Framework应用 358
21.4 PHP与Zend Framework的基本操作 360
21.4.1 在Zend Framework应用中创建控制层文件 361
21.4.2 在Zend Framework的控制层文件中添加一个action 361
21.4.3 在Zend Framework中创建布局 363
21.4.4 在Zend Framework中的数据库操作 363
21.4.5 在Zend Framework中创建表单 364
21.5 高手甜点 366
第22章 PHP+MySQL开发论坛实战 367
22.1 需求分析 367
22.1.1 网站的需求分析 367
22.1.2 网站的功能模块分析 368
22.2 数据库分析 368
22.2.1 分析数据库 368
22.2.2 创建数据表 369
22.3 论坛的代码实现 370
22.3.1 数据库连接相关文件 370
22.3.2 论坛主页面 375
22.3.3 新用户注册页面 379
22.3.4 论坛帖子的相关页面 382
22.3.5 后台管理系统的相关页面 391
第23章 开发酒店管理系统网站 417
23.1 网站的需求分析 417
23.2 数据库分析 418
23.3 酒店管理系统的实现 420
23.3.1 使用Yii框架的沙箱模式建立项目 420
23.3.2 开始goodone项目编程 422
23.3.3 构建message系统 426
23.3.4 构建product系统 433
23.3.5 构建order系统 435
23.3.6 构建customer系统 436