第1章 PHP开篇 1
1.1 PHP基础知识 1
1.1.1 Web技术 1
1.1.2 PHP概述 2
1.1.3 常用编辑工具 3
1.2 PHP开发环境搭建 3
1.2.1 Apache的安装 3
1.2.2 Apache的配置 7
1.2.3 PHP的安装 11
1.3 编写HelloWorld程序 14
本章小结 14
第2章 PHP基本语法 15
2.1 PHP语法风格 15
2.1.1 PHP标记 15
2.1.2 PHP注释 16
2.2 PHP标识符与关键字 17
2.2.1 PHP标识符 17
2.2.2 关键字 18
2.3 PHP常量 18
2.3.1 常量的定义 18
2.3.2 预定义常量 19
2.4 PHP变量 21
2.4.1 变量的定义 21
2.4.2 PHP的数据类型 22
2.4.3 检测变量的数据类型 24
2.4.4 可变变量 26
2.5 变量类型的转换 26
2.5.1 自动类型转换 26
2.5.2 强制类型转换 29
2.6 PHP运算符 30
2.6.1 运算符与表达式 30
2.6.2 算术运算符 31
2.6.3 赋值运算符 31
2.6.4 递增递减运算符 32
2.6.5 比较运算符 34
2.6.6 逻辑运算符 35
2.6.7 位运算符 35
2.6.8 错误控制运算符 37
2.6.9 运算符优先级 38
2.7 流程控制语句 39
2.7.1 选择结构语句 39
2.7.2 循环结构语句 48
2.7.3 跳转语句 51
本章小结 54
第3章 函数 55
3.1 初识函数 55
3.1.1 函数的定义 55
3.1.2 函数的调用 56
3.1.3 函数的返回值 57
3.2 函数的高级应用 58
3.2.1 函数中变量的作用域 58
3.2.2 可变函数 59
3.2.3 函数的嵌套调用 60
3.3 函数的递归调用 61
3.4 字符串相关函数 63
3.4.1 explode()函数 63
3.4.2 implode()函数 64
3.4.3 strcmp()函数 65
3.4.4 str_replace()函数 66
3.4.5 substr()函数 67
3.4.6 strlen()函数 68
3.4.7 trim()函数 68
3.5 日期和时间管理 70
3.5.1 UNIX时间戳 70
3.5.2 获取时间 71
3.5.3 格式化输出 73
3.6 如何使用PHP手册 75
本章小结 77
第4章 数组 78
4.1 初识数组 78
4.1.1 什么是数组 78
4.1.2 数组的定义 79
4.1.3 数组的使用 80
4.1.4 删除数组 82
4.1.5 数组操作符 83
4.2 数组的常见操作 85
4.2.1 数组指针 85
4.2.2 数组遍历 87
4.2.3 数组排序 89
4.2.4 数组元素查找 91
4.3 数组的常用函数 94
4.3.1 基本函数 94
4.3.2 键值对的相关函数 96
4.3.3 排序函数 98
4.3.4 合并和拆分函数 99
4.3.5 其他函数 101
本章小结 102
第5章 面向对象编程 103
5.1 面向对象概述 103
5.2 类与对象 104
5.2.1 类的定义 104
5.2.2 对象的创建 105
5.2.3 类的封装 106
5.2.4 特殊的$this 109
5.3 构造方法和析构方法 110
5.3.1 构造方法 110
5.3.2 析构方法 111
5.4 类常量和静态成员 112
5.4.1 类常量 113
5.4.2 静态成员 114
5.5 继承 115
5.5.1 继承的概念 115
5.5.2 重写父类方法 117
5.5.3 final关键字 119
5.6 自动加载及魔术方法 120
5.6.1 自动加载 120
5.6.2 魔术方法 122
5.7 抽象类与接口 123
5.7.1 抽象类 123
5.7.2 接口 125
5.8 多态 128
5.9 设计模式 129
5.9.1 单例模式 129
5.9.2 工厂模式 131
5.10 命名空间 132
5.10.1 为什么使用命名空间 132
5.10.2 命名空间的定义 133
5.10.3 命名空间的使用 135
本章小结 136
第6章 错误处理及调试 137
6.1 错误处理概述 137
6.1.1 常见的错误类型 137
6.1.2 错误级别 138
6.1.3 手动触发错误 138
6.2 如何处理错误 139
6.2.1 显示错误报告 139
6.2.2 记录错误日志 141
6.2.3 自定义错误处理器 143
6.3 异常处理 144
6.3.1 异常的概述 144
6.3.2 异常的处理 144
6.3.3 自定义异常 145
6.3.4 多个catch块 146
6.3.5 设置顶层异常处理器 149
6.4 PHP的调试技术 150
6.4.1 使用输出函数进行调试 150
6.4.2 使用文件记录进行调试 150
6.4.3 使用Xdebug进行调试 151
本章小结 154
第7章 HTTP协议 155
7.1 HTTP概述 155
7.1.1 什么是HTTP 155
7.1.2 HTTP1.0和HTTP1.1 156
7.1.3 HTTP地址 157
7.1.4 HTTP消息 157
7.2 HTTP请求 159
7.2.1 HTTP请求行 159
7.2.2 HTTP请求消息头 164
7.3 HTTP响应 166
7.3.1 HTTP响应状态行 166
7.3.2 HTTP响应消息头 169
本章小结 170
第8章 PHP与Web页面交互 171
8.1 解析PHP执行过程 171
8.2 Web表单 173
8.2.1 表单组成 173
8.2.2 获取表单数据 174
8.2.3 表单安全验证 176
8.2.4 表单数据验证 177
8.3 超全局变量 179
8.3.1 超全局变量 179
8.3.2 $GET 179
8.3.3 $_POST 180
8.3.4 $_REQUEST 181
8.3.5 $_SERVER 182
8.3.6 $GLOBALS 184
本章小结 184
第9章 PHP会话技术 185
9.1 会话技术概述 185
9.2 Cookie技术 185
9.2.1 Cookie概述 185
9.2.2 创建Cookie 186
9.2.3 读取Cookie 187
9.2.4 删除Cookie 188
9.3 Cookie案例——显示用户上次访问时间 188
9.4 Session技术 190
9.4.1 Session概述 190
9.4.2 启动Session 191
9.4.3 向Session添加数据 192
9.4.4 读取Session中的数据 192
9.4.5 删除Session中的数据 193
9.5 Session案例——实现用户登录 194
9.5.1 需求分析 194
9.5.2 案例实现 195
9.6 本章小结 200
第10章 正则表达式 201
10.1 正则表达式概述 201
10.2 正则表达式语法规则 202
10.2.1 定位符(∧、$、\b、\B) 202
10.2.2 字符类([]) 202
10.2.3 选择字符(l) 203
10.2.4 连字符(-) 203
10.2.5 反义字符([∧]) 204
10.2.6 限定符(?*+{n,m}) 204
10.2.7 点字符(.) 205
10.2.8 转义符(\) 205
10.2.9 反斜线(\) 205
10.2.10 括号字符(()) 206
10.3 PCRE兼容正则表达式函数 206
10.3.1 preg_grep()函数 206
10.3.2 preg_match()函数 207
10.3.3 preg_match_all()函数 208
10.3.4 preg_replace()函数 209
10.3.5 preg_split()函数 210
10.4 正则表达式应用案例 211
10.4.1 验证电子邮箱 211
10.4.2 验证手机号码 212
10.4.3 验证QQ号 214
10.4.4 验证网址URL 215
10.4.5 验证身份证号码 216
本章小结 217
第11章 文件操作 218
11.1 文件概述 218
11.1.1 文件流 218
11.1.2 文件类型 219
11.1.3 文件属性 220
11.2 文件操作 223
11.2.1 打开和关闭文件 223
11.2.2 读取文件 225
11.2.3 写入文件 228
11.2.4 其他操作 231
11.3 目录操作 233
11.3.1 解析目录 233
11.3.2 遍历目录 235
11.3.3 创建和删除目录 236
11.3.4 统计目录中所有文件的大小 237
11.4 文件上传与下载 239
11.4.1 文件上传 239
11.4.2 文件下载 242
本章小结 244
第12章 PHP图像技术 245
12.1 PHP图像基础 245
12.1.1 GD库简介 245
12.1.2 常见图片格式 246
12.1.3 指定正确的MIME类型 247
12.2 图像的常见操作 248
12.2.1 创建画布 248
12.2.2 颜色处理 249
12.2.3 输出图像 249
12.2.4 绘制基本形状的图像 250
12.2.5 绘制文本 251
12.3 图像处理的经典案例 253
12.3.1 验证码 253
12.3.2 添加水印 258
12.4 JpGraph图表库 261
12.4.1 JpGraph简介 261
12.4.2 安装JpGraph 261
12.4.3 使用JpGraph 262
本章小结 264