第1篇基础知识 3
第1章 PHP概述及环境搭建 3
1.1 PHP概述 3
1.2 LAMP开发组合概述 4
1.3 Linux系统下环境的搭建 4
1.4 Windows系统下环境的搭建 7
1.4.1安装和配置Apache 7
1.4.2安装和配置MySQL 11
1.4.3安装pHp 15
1.5儿种综合网络服务器概述 17
1.5.1 AppServ的安装及配置 17
1.5.2 XAMPP 19
1.6几种PHP集成开发环境以及开发工具 20
1.6.1 Eclipse+PHPEclipse 20
1.6.2 VIM 23
1.6.3 EditPlus 23
1.7难点解析 24
1.8高手训练营 24
第2章 PHP基础语法 25
2.1 Hello, PHP! 25
2.2常量 26
2.2.1自定义常量 26
2.2.2预定义常量 28
23变量 29
2.3.1变量的定义 29
2.3.2变量的命名规则 30
2.3.3变量的作用域 31
2.3.4静态变量 34
2.3.5动态变量 34
2.4流程控制结构 35
2.4.1条件控制语句 35
2.4.2循环控制语句 39
2.4.3跳转控制语句 41
2.5变量操作符 42
2.5.1算术运算符 42
2.5.2自增、自减运算符 43
2.5.3赋值操作符 44
2.5.4字符串操作符 45
2.5.5逻辑操作符 46
2.5.6比较操作符 47
2.5.7位运算符 48
2.5.8运算符的优先级 50
2.6表达式 51
2.7难点解析 51
2.8高手训练营 52
第3章 PHP数据类型 53
3.1数据类型的种类 53
3.1.1整型 53
3.1.2浮点型 54
3.1.3字符串型 55
3.1.4布尔型 56
3.1.5资源类型和NULL 57
3.2数据类型的转换 59
3.2.1伪类型 59
3.2.2自动转换 60
3.2.3直接转换 61
3.2.4用转换函数实现转换 64
3.3难点解析 66
3.4高手训练营 67
第4章PHP数组 68
4.1数组的类型 68
4.1.1数字索引数组 68
4.1.2关联数组 70
4.2数组的构造 71
4.2.1一维数组 71
4.2.2二维数组 71
4.3数组的排序 72
4.3.1 sort()和rsort()函数 72
4.3.2 ksort()和krsort()函数 74
4.3.3 asort()和arsort()函数 75
4.3.4 array_multisort()函数 76
4.4数组的遍历 77
4.4.1使用for语句循环遍历数组 77
4.4.2使用foreach语句遍历数组 78
4.4.3联合使用list()函数、each()函数和while语句循环遍历数组 79
4.4.4使用数组内部指针控制函数遍历 81
4.5数组的拆分和合并 81
4.5.1数组的拆分 81
4.5.2数组的合并 84
4.5.3数组的交集和差集 86
4.6数组和字符串的转换 87
4.6.1将字符串转换为一个数组 87
4.6.2将数组转换为一个新的字符串 87
4.7有关数组键值和键名操作函数 88
4.7.1返回数组的键值和键名 88
4.7.2查找数组中键名是否存在 89
4.7.3数组的接合 90
4.7.4查找数组键值是否存在 91
4.7.5 array_search()函数 92
4.7.6数组键名与键值的对调 93
4.8在数组中增加或删除元素 94
4.8.1在数组头部插入和删除元素 94
4.8.2在数组尾部插入和删除元素 95
4.8.3删除数组中重复的元素 96
4.8.4删除数组中指定的元素 96
4.9统计数组中元素的个数和出现的次数 97
4.9.1统计数组中元素的个数 97
4.9.2统计数组中元素出现的次数 98
4.10其他一些数组处理函数 99
4.10.1 var_export()函数 99
4.10.2随机抽取数组中的元素 99
4.10.3随机重新排列数组 100
4.11难点解析 101
4.12高手训练营 101
第5章 PHP函数 103
5.1用户自定义函数 103
5.1.1自定义函数的编写和调用 103
5.1.2函数的动态调用 104
5.1.3函数的递归 105
5.1.4函数的嵌套 106
5.1.5函数的返回值 107
5.2函数的参数 108
5.2.1按值传递参数 108
5.2.2按引用传递参数 109
5.2.3使用默认参数 110
5.2.4可变参数的函数 110
5.3内建函数 111
5.3.1常用数学处理函数 112
5.3.2常用时间处理函数 114
5.4包含控制 118
5.4.1 require和include语句 119
5.4.2 require once和include_once语句 119
5.5难点解析 119
5.6高手训练营 120
第6章 字符串 121
6.1字符串简介 121
6.2字符串输出 122
6.3字符串的格式化 124
6.3.1 printf()和sprintf()函数 124
6.3.2去除首尾空格及指定字符函数 126
6.3.3大小写转换函数 128
6.3.4处理HTML标签相关的函数 129
6.3.5其他常用格式化函数 131
6.4常用的字符串操作 133
6.4.1求字符串长度函数 133
6.4.2字符串查找函数 134
6.4.3字符串替换函数 135
6.4.4字符串分解函数 137
6.4.5单词计数函数 139
6.4.6字符串重复函数 140
6.4.7求字符串的子串函数 140
6.4.8字符串比较函数 141
6.5难点解析 142
6.6高手训练营 143
第7章 正则表达式 144
7.1正则表达式概述及功能 144
7.2正则表达式语法规则 145
7.2.1定界符和修饰符 145
7.2.2逻辑区隔 146
7.2.3元字符与“[]”相关 146
7.2.4匹配次数与“{}”相关 147
7.2.5逻辑区间与“()”相关 147
7.2.6类型匹配 148
7.3 POSIX扩展的正则表达式函数 149
7.3.1查找字符串函数 149
7.3.2替换字符串函数 150
7.3.3分割字符串至数组函数 151
7.3.4 sql_ regcase()函数 152
7.4 Perl兼容的正则表达式函数 153
7.4.1查找字符串函数Preg_greP() 153
7.4.2匹配字符串函数preg_match() 154
7.4.3全局匹配字符串函数preg match all() 155
7.4.4查找并替换字符串函数preg_replace() 158
7.4.5通过回调函数执行查找和替换函数preg replace callback() 159
7.4.6字符串分割函数preg split() 160
7.4.7转义字符串函数preg_quote() 161
7.5难点解析 162
7.6高手训练营 162
第8章 文件系统 164
8.1文件的属性 164
8.1.1文件的类型 164
8.1.2文件的大小 165
8.1.3文件是否存在 166
8.1.4文件的读写执行属性 167
8.1.5文件的相关时间 168
8.2文件的相关操作 168
8.2.1打开和关闭文件 168
8.2.2读取文件内容 170
8.2.3写入文件 173
8.2.4文件指针 175
8.2.5文件锁定机制 176
8.2.6一些基本文件操作函数 177
8.2.7文件的远程操作 179
8.3 PHP目录相关操作 179
8.3.1打开和关闭目录 179
8.3.2浏览目录 180
8.3.3建立和删除目录 181
8.4文件的上传 182
8.5难点解析 185
8.6高手训练营 186
第9章 PHP中的异常处理 187
9.1异常处理的原理 187
9.2 PHP中的异常处理 187
9.2.1异常类Exception 188
9.2.2异常抛出关键字throw 189
9.2.3异常捕获语句try…catch 190
9.2.4异常处理函数设置set_exception_handler 191
9.2.5完整的异常信息 192
9.3扩展的异常处理类 193
9.4异常的传递与重掷 196
9.5难点解析 198
9.6高手训练营 198
第10章PHP中类的应用 199
10.1面向对象基础 199
10.1.1类 199
10.1.2对象 199
10.1.3面向对象编程的特点 199
10.1.4面向对象编程的优点 200
10.2类和对象 200
10.2.1类的实例化 200
10.2.2对象的使用 201
10.2.3成员变量 202
10.2.4成员函数 203
10.3构造函数与析构函数 204
10.3.1构造函数 204
10.3.2析构函数 206
10.4使用$this变量访问方法和属性 207
10.5 final关键字 208
10.6 static关键字 209
10.7抽象类和接口 210
10.7.1抽象类 210
10.7.2接口 212
10.8魔术方法 213
10.9难点解析 215
10.10高手训练营 216
第11章PHP与HTML 217
11.1表单与HTML 217
11.2 get与post的区别 220
11.3表单的处理方法 222
11.3.1检查表单提交的来源 222
11.3.2一个完整表单处理 223
11.4常用表单数据验证方法 226
11.4.1客户端验证 226
11.4.2服务器端验证 227
11.4.3避免表单重复提交 227
11.4.4表单过期的处理 231
11.4.5判断表单动作的技巧 232
11.5表单安全 233
11.5.1处理全局性错误 233
11.5.2预防SQL注入 238
11.6代码安全 239
11.6.1用户输入验证 239
11.6.2高级数据验证:使用ctype 240
11.6.3数据过滤 241
11.6.4路径检测 242
11.6.5魔法引用 243
11.7 URL编码、解码函数 244
11.7.1编码字符串——urlencode 244
11.7.2解码字符串——urldecode 245
11.8难点解析 246
11.9高手训练营 246
第12章 PHP与JavaScript交互 247
12.1 PHP动态生成JavaScript代码 247
12.1.1多行输出 247
12.1.2单行输出 248
12.1.3 PHP动态生成JavaScript实例——进度条 249
12.2在JavaScript中调用PHP程序 250
12.2.1页面的跳转 250
12.2.2隐性调用PHP程序 251
12.3 JavaScript和PHP的综合范例 252
12.4难点解析 257
12.5高手训练营 257
第2篇 PHP与数据库 261
第13章MySQL数据库的基本操作 261
13.1 MySQL简介 261
13.1.1什么是MySQL 261
13.1.2 MySQL的特点 261
13.2 MySQL的启动与断开 262
13.2.1启动与停止MySQL服务器 262
13.2.2使用update命令修改MySQL密码 263
13.3使用MySQL命令行操作数据库 264
13.3.1数据库的创建 264
13.3.2数据库的选择 264
13.3.3数据库的查看 265
13.3.4数据库的删除 265
13.4使用MySQL命令行操作数据表 265
13.4.1数据表的创建 266
13.4.2数据表结构的查看 266
13.4.3数据表结构的修改 267
13.4.4数据表的重命名 268
13.4.5数据表的插入 268
13.4.6数据表的查询 269
13.4.7数据表的更新 270
13.4.8数据表的删除 270
13.5 phpMyAdmin管理工具 271
13.5.1 phpMyAdmin简介 271
13.5.2 phpMyAdmin的使用 271
13.6难点解析 274
13.7高手训练营 274
第14章MySQL与PHP的应用 275
14.1 PHP与Web数据库 275
14.1.1 Web数据库的工作原理 275
14.1.2 PHP与数据库结合的优势 275
14.2 PHP与MySQL的集成应用 275
14.2.1连接和断开MySQL数据库 276
14.2.2显示可用数据库 277
14.2.3创建新的数据库和表 278
14.2.4删除已存在的数据库和表 281
14.2.5使用SQL语句插入记录 284
14.2.6使用SQL语句查询记录 286
14.2.7使用SQL语句更新记录 288
14.2.8使用SQL语句删除记录 290
14.3使用PHP获取MySQL数据库的信息 292
14.3.1获取数据库信息 292
14.3.2获取表的信息 293
14.3.3获取列的信息 294
14.4 MySQL数据库使用实例——网站计数器模块 295
14.5难点解析 309
14.6高手训练营 310
第15章 PHP中的Session和Cookie 311
15.1 Session和Cookie简介 311
15.2 Session的使用 311
15.2.1如何使用Session 311
15.2.2使用Session的注意事项 312
15.3 Session应用实例 313
15.4 Cookie的使用 315
15.4.1如何使用Cookie 315
15.4.2使用Cookie的注意事项 317
15.5 Cookie应用实例 317
15.6 Session与Cookie的比较 320
15.7难点解析 321
15.8高手训练营 321
第3篇 高级应用与实战 325
第16章PHP的缓存与静态化应用 325
16.1静态化概述 325
16.1.1静态页面 325
16.1.2动态页面 325
16.1.3静态化的作用 326
16.1.4动态、静态化对比试验 327
16.2缓存机制概述 330
16.2.1缓存机制 331
16.2.2静态化机制 331
16.3 PHP静态化技术 331
16.3.1由模板生成静态页面 331
16.3.2数据库与静态页面 333
16.3.3静态页面内容的修改 336
16.3.4静态页面的动态操作 338
16.4难点解析 339
16.5高手训练营 340
第17章 Smarty与模板技术 341
17.1 MVC概述 341
17.2模板系统 342
17.3 Smarty概述 342
17.3.1 Smarty的优点 343
17.3.2 Smarty的开发特性 343
17.4 Smarty的安装与配置 343
17.4.1 Smarty 2与Smarty 3的区别 343
17.4.2 Smarty的安装 344
17.4.3 Smarty的配置 344
17.4.4 Smarty程序的一般步骤 346
17.5 Smarty开发基础 346
17.5.1 Smarty注释 346
17.5.2 Smarty区块 347
17.5.3 Smarty变量与格式化 347
17.6 Smarty控制结构 349
17.6.1判断结构 349
17.6.2循环结构 351
17.6.3表单元素的生成 355
17.6.4外部文件的载入 358
17.7 Smarty缓存技术 359
17.8难点解析 360
17.9高手训练营 361
第18章PHP与Ajax技术 362
18.1 Ajax概述 362
18.1.1什么是Ajax 362
18.1.2 Ajax的开发模式 362
18.1.3 Ajax的优点和缺点 363
18.2 Ajax与XML的应用 363
18.3使用post方式的Ajax 366
18.4 Ajax程序应用范例 369
18.5难点解析 372
18.6高手训练营 372
第19章 图片与媒体处理 373
19.1使用GD扩展库 373
19.1.1 GD扩展库的配置 373
19.1.2创建图片 374
19.1.3打开和保存图片 375
19.1.4绘制图形 377
19.1.5生成验证码 378
19.1.6创建图片缩略图 381
19.1.7下载远程图片 383
19.1.8创建水印图片 383
19.2使用Ming扩展库 385
19.2.1创建按钮 385
19.2.2创建静态文字 387
19.2.3创建动态文字 388
19.2.4绘制图形 389
19.2.5使用图片 390
19.3使用Imagick扩展库 391
19.3.1创建缩略图 392
19.3.2读取图片尺寸 392
19.3.3裁剪图片 393
19.3.4转换图片格式 394
19.3.5控制图片旋转 394
19.3.6重新缩放图片 395
19.3.7加入渲染效果 396
19.3.8压缩JPEG图片 397
19.4难点解析 398
19.5高手训练营 398
第20章 使用Jpgraph库创建统计图 399
20.1 Jpgraph概述 399
20.2 Jpgraph的安装与配置 399
20.3使用Jpgraph绘制统计图 400
20.3.1绘制简单的X-Y坐标图 400
20.3.2绘制改进的X-Y坐标图 402
20.3.3绘制柱状图 403
20.3.4绘制饼状图 405
20.3.5绘制3D饼状图 406
20.4 Jpgraph应用范例 407
20.5难点解析 411
20.6高手训练营 411
第21章 共享之家系统 412
21.1系统分析 412
21.1.1系统背景描述 412
21.1.2系统模块划分 412
21.2数据库设计与实现 413
21.3基础框架扩展设计 415
21.3.1控制器扩展类 416
21.3.2数据库扩展类 419
21.3.3视图扩展类 425
21.3.4功能扩展类 427
21.4系统配置文件与引导文件的设计 430
21.4.1配置文件的设计 430
21.4.2引导文件的设计 435
21.5用户管理模块 437
21.5.1用户组管理 438
21.5.2组权限管理 443
21.5.3用户管理 448
21.6文档管理模块 459
21.6.1文档分类管理模块 459
21.6.2文档上传模块 465
21.6.3文档下载模块 474
21.7难点解析 482
训练营参考答案 483