第1章 PHP开篇 1
1.1 PHP基础知识 2
1.1.1 Web技术 2
1.1.2 PHP概述 2
1.1.3 常用编辑工具 3
1.2 PHP开发环境搭建 4
1.2.1 Apache的安装 4
1.2.2 PHP的安装 8
1.2.3 Web服务器配置 12
动手实践:PHP编程快速体验 17
本章小结 19
课后练习 19
第2章 PHP基本语法 20
2.1 基本语法 21
2.1.1 标记与注释 21
2.1.2 输出语句 23
2.1.3 PHP标识符 23
2.1.4 PHP关键字 23
2.2 数据与运算 24
2.2.1 常量 24
2.2.2 变量 26
2.2.3 表达式 27
2.2.4 数据类型及转换 27
2.2.5 运算符及优先级 33
2.3 流程控制语句 39
2.3.1 选择结构语句 39
2.3.2 循环结构语句 41
2.3.3 跳转语句 44
2.3.4 流程替代语法 46
2.4 文件包含语句 47
动手实践:表格生成器 47
本章小结 51
课后练习 51
第3章 函数 53
3.1 函数的定义与调用 54
3.1.1 初识函数 54
3.1.2 参数设置 55
3.1.3 变量的作用域 57
3.2 函数的嵌套调用 58
3.2.1 嵌套调用 58
3.2.2 递归调用 59
3.3 函数的高级应用 60
3.3.1 静态变量 60
3.3.2 可变函数 60
3.3.3 回调函数 61
3.3.4 匿名函数 61
3.4 PHP的内置函数 62
3.4.1 字符串函数 62
3.4.2 数学函数 65
3.4.3 时间日期函数 66
3.5 PHP手册的使用 67
动手实践:制作年历 70
本章小结 73
课后练习 74
第4章 数组 75
4.1 初识数组 76
4.2 数组的基本使用 76
4.2.1 数组的定义 76
4.2.2 访问数组 78
4.2.3 遍历数组 79
4.2.4 数组的删除 80
4.2.5 数组操作符 81
4.3 数组查找 81
4.3.1 顺序查找法 81
4.3.2 二分查找法 82
4.4 数组排序 83
4.4.1 冒泡排序 84
4.4.2 简单选择排序 85
4.4.3 快速排序 86
4.4.4 插入排序 87
4.5 数组的常用函数 88
4.5.1 指针操作函数 88
4.5.2 数组元素操作函数 90
4.5.3 排序函数 90
4.5.4 检索函数 91
4.5.5 其他数组函数 91
4.6 数组在字符串与函数中的应用 92
4.6.1 字符串与数组的转换 92
4.6.2 函数可变参数列表 93
4.6.3 将数组作为参数调用函数 94
动手实践:找猴王游戏 94
本章小结 96
课后练习 96
第5章 错误处理及调试 97
5.1 错误处理概述 98
5.1.1 常见的错误类型 98
5.1.2 错误级别 98
5.1.3 手动触发错误 100
5.2 如何处理错误 101
5.2.1 显示错误报告 101
5.2.2 记录错误日志 102
5.2.3 自定义错误处理器 103
5.3 PHP的调试工具 104
5.3.1 NetBeans集成开发环境 104
5.3.2 PHP调试工具Xdebug 107
动手实践:获取PHP脚本运行信息 108
本章小结 112
课后练习 112
第6章 阶段案例——Web表单生成器 113
6.1 案例展示 114
6.2 需求分析 114
6.3 案例实现 115
6.3.1 准备表单 115
6.3.2 多维数组保存数据 117
6.3.3 表单的自动生成 119
本章小结 122
第7章 PHP与Web页面交互 123
7.1 Web交互 124
7.1.1 Web表单交互 124
7.1.2 URL参数交互 125
7.1.3 数组方式提交数据 126
7.1.4 HTML特殊字符处理 128
7.2 HTTP协议 131
7.2.1 什么是HTTP 131
7.2.2 查看HTTP消息 131
7.2.3 PHP处理过程 132
7.2.4 HTTP请求消息 134
7.2.5 HTTP响应消息 137
动手实践:利用cURL扩展发送请求 140
本章小结 142
课后练习 142
第8章 PHP操作MySQL数据库 144
8.1 MySQL的安装和使用 145
8.1.1 数据库概述 145
8.1.2 获取MySQL 145
8.1.3 命令安装方式 146
8.1.4 MySQL命令行工具 148
8.2 PHP访问MySQL 152
8.2.1 PHP的相关扩展 152
8.2.2 PHP访问MySQL的基本步骤 153
8.3 MySQLi扩展的使用 153
8.3.1 连接数据库 154
8.3.2 执行SQL语句 155
8.3.3 处理结果集 156
8.3.4 其他操作函数 157
8.4 预处理和参数绑定 159
8.4.1 什么是预处理 159
8.4.2 预处理的实现 160
动手实践:安装phpMyAdmin 162
本章小结 164
课后练习 164
第9章 阶段案例——“许愿墙” 166
9.1 案例展示 167
9.2 需求分析 167
9.3 案例实现 168
9.3.1 准备工作 168
9.3.2 数据库设计 171
9.3.3 “许愿墙”展示 171
9.3.4 分页查询 174
9.3.5 发表愿望 176
9.3.6 修改愿望 179
9.3.7 删除愿望 182
本章小结 183
第10章 正则表达式 184
10.1 什么是正则表达式 185
10.2 正则表达式快速入门 185
10.2.1 如何使用正则表达式 185
10.2.2 正则表达式的组成 186
10.2.3 获取所有匹配结果 187
10.3 正则表达式语法 187
10.3.1 定位符与选择符 188
10.3.2 字符范围与反斜线 188
10.3.3 字符的限定与分组 189
10.3.4 模式修饰符 191
10.4 PCRE兼容正则表达式函数 192
10.4.1 preg_grep()函数 192
10.4.2 preg_replace()函数 193
10.4.3 preg_split()函数 194
动手实践:正则表达式应用案例 195
本章小结 197
课后练习 197
第11章 文件操作 198
11.1 文件操作入门 199
11.1.1 文件读写 199
11.1.2 文件常用操作 202
11.1.3 文件类型和属性 204
11.1.4 目录操作 205
11.1.5 解析路径 207
11.2 文件操作进阶 208
11.2.1 文件指针 208
11.2.2 目录句柄 211
11.2.3 资源流 213
动手实践:文件上传和下载 214
本章小结 218
课后练习 218
第12章 图像技术 219
12.1 PHP图像基础 220
12.1.1 GD库简介 220
12.1.2 常见图片格式 220
12.2 图像的常见操作 222
12.2.1 图像快速入门 222
12.2.2 图像的基本操作 222
12.2.3 绘制基本形状 225
12.2.4 绘制文本 227
12.3 图像的复制与处理 229
12.3.1 图像叠加与缩放 230
12.3.2 图像过滤器 232
动手实践:图像处理的常见案例 234
本章小结 238
课后练习 238
第13章 阶段案例——在线相册 239
13.1 案例展示 240
13.2 需求分析 240
13.3 案例实现 241
13.3.1 准备工作 241
13.3.2 数据库设计 245
13.3.3 相册管理 246
13.3.4 图片上传 252
13.3.5 图片浏览 257
13.3.6 图片搜索 259
13.3.7 其他操作 260
本章小结 265
第14章 面向对象编程 266
14.1 什么是面向对象 267
14.1.1 面向过程与面向对象 267
14.1.2 面向对象中的类与对象 267
14.1.3 面向对象的特征 268
14.2 类与对象的使用 268
14.2.1 类的定义与实例化 268
14.2.2 对象的基本使用 270
14.2.3 构造方法与析构方法 274
14.3 类常量与静态成员 276
14.3.1 类常量 276
14.3.2 静态成员 277
14.4 封装与继承 277
14.4.1 继承 277
14.4.2 封装 280
14.4.3 方法重写 282
14.4.4 final关键字 283
14.5 抽象类与接口 284
14.5.1 抽象类与抽象方法 284
14.5.2 接口 285
14.5.3 多态与类型约束 286
14.6 设计模式 288
14.6.1 单例模式 288
14.6.2 工厂模式 289
动手实践:MySQLi扩展面向对象语法 289
本章小结 291
课后练习 291
第15章 会话技术 293
15.1 会话技术的概述 294
15.2 Cookie技术 294
15.2.1 Cookie简介 294
15.2.2 Cookie基本使用 295
15.2.3 Cookie路径与域名 297
15.3 Session技术 298
15.3.1 Session简介 298
15.3.2 Session基本使用 299
15.3.3 Session机制 300
动手实践:用户登录与退出 304
本章小结 307
课后练习 307
第16章 阶段案例——“趣PHP”网站开发实战 309
16.1 案例展示 310
16.2 需求分析 311
16.3 案例实现 312
16.3.1 准备工作 312
16.3.2 数据库操作类 314
16.3.3 文件上传类 319
16.3.4 用户登录与退出 322
16.3.5 验证码 327
16.3.6 用户注册 330
16.3.7 记住登录状态 332
16.3.8 用户上传头像 335
16.3.9 栏目管理 337
16.3.10 内容发布与修改 342
16.3.11 处理图片和视频 346
16.3.12 内容查看 348
16.3.13 内容删除 350
16.3.14 内容列表 351
16.3.15 发表回复 353
本章小结 356