第1章 PHP简介 1
1.1 PHP概述 2
1.1.1 什么是PHP 2
1.1.2 PHP的特点 2
1.2 Windows下PHP运行环境的搭建 3
1.2.1 安装运行环境 3
1.2.2 集成软件介绍 16
1.2.3 常用开发工具介绍 17
1.2.4 第一个PHP程序 18
1.3 上机练习 18
第2章 PHP的基本语法 19
2.1 PHP的重要符号 20
2.1.1 PHP语言标记 20
2.1.2 PHP代码的注释 22
2.1.3 PHP的空白符 24
2.1.4 PHP的指令分隔符 24
2.2 PHP的数据类型 25
2.2.1 标量数据类型 26
2.2.2 复合数据类型 31
2.2.3 特殊数据类型 32
2.3 数据类型转换 34
2.3.1 隐式转换(自动转换) 34
2.3.2 显式转换(强制转换) 36
2.4 常量与变量 37
2.4.1 常量 37
2.4.2 变量 39
2.4.3 变量的作用域 41
2.4.4 可变变量 44
2.4.5 变量的销毁 45
2.5 PHP的运算符 47
2.5.1 赋值运算符 47
2.5.2 算术运算符 48
2.5.3 比较运算符 50
2.5.4 逻辑运算符 51
2.5.5 按位运算符 51
2.5.6 字符串运算符 52
2.5.7 错误控制运算符 53
2.5.8 其他运算符 53
2.5.9 运算符的优先级 54
2.6 流程控制语句 55
2.6.1 条件控制语句 55
2.6.2 循环控制语句 59
2.6.3 跳转控制语句 62
2.7 上机练习 64
第3章 函数的应用 67
3.1 自定义函数 68
3.1.1 函数定义与调用 68
3.1.2 函数的参数 69
3.1.3 函数返回值 71
3.1.4 变量函数 71
3.1.5 函数的引用 72
3.1.6 递归函数 73
3.2 内置函数 74
3.2.1 日期时间函数 74
3.2.2 数学函数 78
3.2.3 变量相关的函数 79
3.3 包含文件 81
3.3.1 include和require 81
3.3.2 include once和require_once 82
3.4 上机练习 82
第4章 PHP数组 83
4.1 数组的定义 84
4.1.1 数组的声明 84
4.1.2 数组的分类 85
4.1.3 数组的构造 85
4.2 遍历数组 86
4.3 数组的常用操作 90
4.3.1 统计数组元素个数 90
4.3.2 数组与字符串的转换 91
4.3.3 数组的查找 93
4.3.4 数组的排序 94
4.3.5 数组的拆分与合并 97
4.4 PHP预定义数组 99
4.5 上机练习 100
第5章 字符串操作 101
5.1 认识字符串 102
5.2 字符串表示形式 102
5.3 字符串常用操作 103
5.3.1 字符串连接 103
5.3.2 获取字符串长度 104
5.3.3 去掉字符串的首尾空格和特殊字符 104
5.3.4 大小写转换 105
5.3.5 字符串截取 106
5.3.6 字符串查找 107
5.3.7 字符串替换 107
5.4 上机练习 108
第6章 正则表达式 109
6.1 什么是正则表达式 110
6.1.1 正则表达式简介 110
6.1.2 PHP中正则表达式的作用 110
6.2 正则表达式的基础语法 110
6.2.1 元字符 111
6.2.2 模式修正符 112
6.3 POSIX扩展正则表达式函数 113
6.3.1 字符串匹配函数——ereg()和eregi() 113
6.3.2 字符串替换函数ereg_replace()和eregi_replace() 113
6.3.3 字符串拆分函数——split()和spliti() 114
6.4 Perl兼容正则表达式函数 115
6.4.1 对数组查询匹配函数——preg_grept() 116
6.4.2 字符串匹配函数preg_match()和preg_match_all() 117
6.4.3 转义特殊字符函数——preg_quote() 118
6.4.4 搜索和替换函数——preg_replace() 118
6.4.5 字符串拆分函数——preg_split() 120
6.5 测试正则表达式 120
6.5.1 RegexBuddy 120
6.5.2 JavaScript正则表达式在线测试工具 121
6.6 上机练习 121
第7章 面向对象的程序开发 123
7.1 面向对象的概念 124
7.2 类和对象 124
7.2.1 类和对象的关系 124
7.2.2 类中的属性 125
7.2.3 类中的方法 128
7.2.4 构造方法 130
7.2.5 析构函数与PHP的垃圾回收机制 131
7.3 继承 132
7.3.1 怎样继承一个类 133
7.3.2 修饰符的使用 135
7.3.3 重写 136
7.3.4 parent::关键字 139
7.3.5 重载 140
7.4 高级特性 142
7.4.1 静态属性和方法 142
7.4.2 final类和方法 145
7.4.3 常量属性 147
7.4.4 abstract类和方法 147
7.5 接口 149
7.6 PHP 5中的魔术方法 150
7.6.1 _set方法 151
7.6.2 _get方法 152
7.6.3 _call方法 153
7.6.4 _toString方法 154
7.7 上机练习 154
第8章 错误和异常处理 157
8.1 PHP的错误处理机制 158
8.2 自定义错误处理 160
8.3 PHP异常处理 162
8.3.1 异常的抛出与捕获 162
8.3.2 基本异常(Exception)类介绍 163
8.3.3 自定义异常 164
8.3.4 捕获多个异常 165
8.4 上机练习 166
第9章 PHP文件处理 167
9.1 查看文件和目录 168
9.1.1 查看文件名称 168
9.1.2 显示目录名称 168
9.1.3 查看文件真实目录 169
9.2 查看文件信息 169
9.2.1 显示文件类型 169
9.2.2 显示文件访问与修改时间 170
9.2.3 获取文件权限 171
9.3 操作目录 171
9.3.1 创建目录 171
9.3.2 打开目录 172
9.3.3 关闭目录 173
9.3.4 读取目录 173
9.3.5 删除目录 173
9.4 操作文件 174
9.4.1 打开文件/关闭文件 174
9.4.2 读取文件 175
9.4.3 写入文件 178
9.4.4 删除文件 179
9.4.5 复制文件 179
9.4.6 移动文件和重命名文件 180
9.5 小结 180
9.6 综合练习 181
第10章 PHP文件上传 183
10.1 文件上传的基本知识 184
10.1.1 文件上传种类 184
10.1.2 表单特性 184
10.2 全局变量$FHLES 185
10.3 单文件上传 185
10.4 多文件上传 188
10.5 综合练习 189
10.6 小结 192
第11章 PHP的会话机制 193
11.1 通过Session和Cookie实现会话处理 194
11.2 使用Session 194
11.2.1 什么是Session 194
11.2.2 Session的常用函数 194
11.2.3 Session的生命周期 197
11.2.4 使用Session控制PHP页面缓存 197
11.2.5 Session的安全问题 198
11.3 使用Cookie 199
11.3.1 什么是Cookie 199
11.3.2 Cookie的工作机制 200
11.3.3 Cookie的创建与销毁 200
11.3.4 PHP中怎样获取Cookie 203
11.4 使用Session和Cookie时应注意的问题 203
11.5 综合练习 204
11.6 小结 205
第12章 PHP操作MySQL数据库 207
12.1 数据库的访问 208
12.1.1 连接MySQL服务器 208
12.1.2 关闭MySQL连接 208
12.1.3 选择MySQL数据库 209
12.1.4 执行SQL语句 209
12.1.5 处理查询结果集 210
12.1.6 SQL语句的基本使用 213
12.1.7 MySQL用户的创建与授权 217
12.2 数据库的操作 220
12.2.1 获取服务器上的所有数据库 220
12.2.2 获取数据库内的表 221
12.2.3 获取数据表的字段信息 221
12.2.4 获取错误信息 222
12.2.5 两个小应用 222
12.3 PHP操作MySQL数据库 225
12.3.1 添加留言信息 225
12.3.2 分页显示留言信息 228
12.3.3 查询单条留言的详细信息 230
12.3.4 编辑留言信息 231
12.3.5 删除留言信息 233
12.4 小结 234
12.5 上机练习 234
第13章 PHP MVC程序设计 237
13.1 MVC简介 238
13.1.1 模型 238
13.1.2 视图 238
13.1.3 控制器 238
13.2 使用MVC开发微博项目 238
13.2.1 需求分析 238
13.2.2 用例图 239
13.2.3 数据库结构 239
13.2.4 项目及数据库搭建 240
13.3 Smarty简介 261
13.4 Smarty的安装与配置 262
13.4.1 Smarty的安装 263
13.4.2 Smarty的配置 264
13.4.3 第一个Smarty程序 266
13.5 Smarty的使用步骤 267
13.6 Smarty变量 269
13.6.1 在模板中输出PHP分配的变量 269
13.6.2 模板中输出PHP分配的变量 271
13.6.3 变量调节器 272
13.6.4 Smarty中变量的使用 278
13.6.5 Smarty中流程控制语句的使用 279
13.6.6 开启缓存 279
13.6.7 设置缓存生命周期 280
13.7 流程控制 281
13.7.1 条件选择结构if-else 281
13.7.2 foreach语句 282
13.7.3 section 284
13.8 Smarty的缓存处理 285
13.8.1 在Smarty中控制缓存 285
13.8.2 一个页面多个缓存 286
13.8.3 为缓存实例消除处理开销 287
13.8.4 清除缓存 288
13.8.5 关闭局部缓存 288
13.9 综合练习 290
13.10 小结 305
第14章 仿记事狗微博项目 307
14.1 系统概述 308
14.2 需求分析 308
14.3 开发环境 308
14.4 数据库结构 308
14.5 项目的开发 310
14.5.1 用户注册 310
14.5.2 用户登录 314
14.5.3 首页显示 315
14.6 总结 328
第15章 Smarty项目 329
15.1 系统概述 330
15.2 需求分析 330
15.3 开发环境 330
15.4 数据库结构 330
15.5 后台功能的实现 332
15.5.1 管理用户登录 332
15.5.2 后台主界面 334
15.5.3 景点列表页面 335
15.5.4 景点列表的编辑 338
15.5.5 景点信息的添加 340
15.6 前台界面 343
15.6.1 前台首页面 343
15.6.2 杭州旅游的主页 347
15.6.3 景点大全 353
15.7 总结 358
15.8 上机练习 358
第16章 博客管理系统(ApaChe+PHP+MysQL实现) 359
16.1 需求分析 360
16.2 系统设计 360
16.2.1 系统功能结构 360
16.2.2 系统流程图 361
16.2.3 开发环境 361
16.2.4 文件夹的组织结构 362
16.3 数据库设计 362
16.3.1 数据库概念设计 362
16.3.2 数据库物理结构设计 363
16.4 首页设计 364
16.4.1 首页技术分析 365
16.4.2 首页的实现过程 365
16.5 博文管理模块的设计 370
16.5.1 博文管理模块的技术分析 370
16.5.2 添加博文的实现过程 372
16.5.3 博文列表的实现过程 373
16.5.4 查看博文、评论的实现过程 377
16.5.5 删除文章、评论的实现过程 383
16.6 图片上传模块的设计 384
16.6.1 图片上传模块的技术分析 384
16.6.2 图片上传的实现过程 385
16.6.3 图片浏览与删除的实现过程 386
16.7 朋友圈模块设计 392
16.7.1 朋友圈模块技术分析 392
16.7.2 查询好友的实现过程 393
16.8 本章总结 398