第1章 PHP概述 1
1.1 PHP简介 1
PHP代码形式介绍 1
PHP能做什么 2
1.2 PHP的发展历史 3
1.3 PHP的先进之处 5
1.4 PHP5的新特性 5
PHP4的局限 5
Zend 2.0开始开发 6
PHP5的性能 6
1.5 PHP5与动态网站的构建 13
1.6 PHP编辑工具介绍 15
1.7本章小结 17
第2章 搭建PHP5的开发环境 18
2.1搭建PHP开发环境 18
软件准备 18
Apache服务器的安装和配置 19
PHP的安装和配置 21
MySQL的安装 22
PEAR的安装 26
phpMyAdmin的安装 28
运行环境测试 29
其他平台上的配置 29
2.2站点设置 33
单站点设置 33
多站点设置 34
2.3 PHP的Hello World预览 35
2.4 PHP帮助文档的使用 36
2.5本章小结 37
第3章 PHP的基本语法 38
3.1程序设计规范 38
注释的使用 38
PHP中的命名规则 40
3.2 PHP的数据类型 40
布尔型(Boolean)与NULL 40
字符串(String) 41
整型(integer) 43
浮点型(Double/Float) 44
数组(Array) 45
对象(Object) 45
3.3运算符和关键字 46
算术运算符 46
字符串运算符 47
赋值运算符 47
比较运算符 48
逻辑运算符 49
位运算符 49
自增与自减运算符 50
PHP的关键字 50
3.4条件语句 51
if-else语句 51
switch语句 53
三元条件语句 55
3.5循环语句 55
for循环 55
while循环 59
do-while循环 60
foreach循环 62
break与continue 65
实例:九九乘法口诀表的打印 65
3.6本章小结 67
第4章 PHP字符串操作与正则表达式 68
4.1字符串的定义 68
4.2字符串的格式化 68
字符串整理:chop()、ltrim()和trim() 69
addslashes()和stripslashes() 70
字符串的大小写转换 70
4.3字符串的连接和分割 71
使用explode()、 implode()和join() 71
使用strtok()函数 73
使用substr()函数 73
4.4字符串的比较 74
字符串的排序:strcmp()、strcasecmp()和strnatcmp() 74
获取字符串长度 75
4.5字符串的查找和替换 75
字符串的查找:strstr()、stristr()和strrchr() 75
查找子字符串的位置:strpos()、strrpos() 76
字符串的替换:str_replace()、substr_replace() 77
4.6字符串的加密和编码 79
字符串的MD5加密 79
字符串的编码 79
4.7正则表达式简介 80
普通字符 81
非打印字符 81
特殊字符 81
限定符 82
定位符 83
选择 83
后向引用 83
几个正则表达式匹配的例子 83
常用的正则表达式 84
其他注意事项 85
4.8 PHP的正则表达式操作 85
获得与模式匹配的数组单元:preg_grep 85
进行全局正则表达式的匹配:preg_match_all 86
进行正则表达式的匹配:preg_match 86
转义正则表达式字符:preg_quote 87
执行正则表达式的搜索和替换函数:preg_replace 87
通过回调函数执行正则表达式的搜索和替换——preg_replace_callback 88
用正则表达式进行字符串分割preg_split 89
4.9正则表达式的Web验证应用 89
电子邮件地址的校验 89
多字节字符的校验 90
URL地址的校验 90
电话号码和邮政编码的校验 90
4.10本章小结 91
第5章 数组 92
5.1数组基础 92
什么是数组 92
创建数组 92
引用数组元素 93
一维数组和二维数组 95
5.2操作数组 95
遍历数组 95
修改数组 98
递增排序:sort 100
递减排序:rsort 102
随机排序 103
5.3数组的其他常用操作 104
顺序查找 104
加总数组中的值 106
线性表的入栈与出栈 107
数组的合并 108
数组的拆分 109
取数组元素的最值 110
5.4本章小结 111
第6章 函数 112
6.1自定义函数 112
声明函数 112
函数的调用 112
函数传值 113
函数的返回值 114
变量的作用域 116
检测函数是否可用 117
6.2常用数学函数概述 117
取绝对值 117
产生随机数 118
获取整数部分 118
数字格式化 119
对浮点数进行四舍五入 119
6.3日期时间函数 120
获取系统日期和时间 120
格式化日期 121
其他常用日期函数 123
6.4对象函数 123
获取对象的类名称 123
获取对象的方法名称 124
判断类是否已定义 124
判断对象的方法是否存在 125
6.5本章小结 125
第7章 构建PHP动态网页 126
7.1 Web表单及其常用元素简介 126
表单标记form 126
输入标记input与文本框 127
按钮 128
单选按钮与复选框 129
多行文本区标记textarea及FCKeditor简介 130
下拉框与列表框标记select 131
在Web页面中嵌入PHP代码 132
7.2 PHP获取Web表单数据 132
GET方法和POST方法 133
PHP接收表单数据 135
PHP获取环境变量 138
PHP获取URL参数 140
7.3动态网页中常用的JavaScript验证 140
姓名验证 141
日期验证 141
E-mail地址验证 142
密码字段的验证 142
改进的用户信息输入程序 142
7.4动态网页中常用的URL编码解码函数 146
字符串编码:urlencode 146
解码字符串:urldecode 147
7.5本章小结 147
第8章 PHP5的面向对象程序设计 148
8.1面向对象的概念 148
什么是类 148
什么是对象 148
类和对象的关系 149
8.2 PHP5中的类和对象 149
类的创建 149
定义类的属性 150
定义类的方法 150
对象的创建 151
$this关键字 151
构造函数 154
析构函数 154
对象的比较 156
对象的克隆 158
8.3类的继承 159
关于继承 159
PHP5中类的继承 160
私有变量和方法不被继承 160
继承的简单例子 160
访问控制 162
parent关键字 165
8.4类的接口 167
接口的定义 167
实现接口 169
多态性 173
instanceof运算符 175
8.5本章小结 176
第9章 文件和目录系统 177
9.1读写文件 177
打开文件fopen 177
写入文件fwrite 178
读取文件fread 178
关闭文件fclose 179
其他几个操作 180
示例:读取文本文件内容 181
9.2文件信息 182
判断文件是否存在 182
获取文件长度 182
获取文件权限 182
修改文件权限 183
9.3目录操作 184
判断指定目录是否存在is_dir 184
创建目录mkdir 184
删除目录rmdir 184
显示指定目录信息array pathinfo 184
9.4综合示例:PHP实现Web应用程序的文件管理 184
获取指定磁盘信息 185
判断指定文件或者目录是否存在 185
搜索指定目录下的文件 185
搜索指定目录下子目录 186
显示文件和子目录 187
9.5综合示例:在Web应用程序中实现文件上传 189
以POST方法上传文件 189
上传多个文件 190
文件MIME类型 191
9.6本章小结 192
第10章 异常处理 193
10.1以往的异常处理办法 193
通过php.ini配置程序输出错误信息 193
使用die()来终止程序运行 195
使用trigger_error()显示自定义警告信息 196
随时判断错误标识 198
使用PEAR扩展类库处理异常 201
10.2 PHP5中的异常处理 203
异常类Exception 203
异常抛出关键字throw 205
异常捕获try-catch语句 205
异常处理函数设置set_exception_handler 207
完整的异常信息 207
10.3扩展的异常处理类 210
10.4异常的传递与重掷 212
10.5正确使用异常处理 213
10.6本章小结 214
第11章 XML文件操作 215
11.1 XML简介 215
什么是XML 215
XML的特点 216
XML和HTML的区别及语法要求 217
11.2简单的XML操作 218
创建一个SimpleXML对象 220
读取SimpleXML对象中的XML数据 221
XML数据的修改 222
XML数据的存储 223
11.3 XML文档的动态创建 224
11.4 XML应用示例:留言本 226
XML文件结构设计 226
提交页面的编写 226
显示页面的编写 229
11.5本章小结 231
第12章 PHP5的会话管理 232
12.1Session与会话管理 232
Session概念 232
使用Session 233
设置Session生命周期 233
注册Session 233
删除Session 235
Session在动态网站中的应用举例:用户登录验证 235
12.2 Cookie与会话管理 237
Cookie概念 238
Cookie的优缺点 238
设置Cookie 240
接收和处理Cookie 240
删除Cookie 241
使用Cookie的限制 241
Cookie在动态网站中的应用举例:简单购物车的实现 241
12.3本章小结 246
第13章 PHP5与MySQL 248
13.1 MySQL数据库 248
MySQL数据库简介 248
MySQL数据组织 249
MySQL数据类型 249
13.2 SQL句法简介 251
数据库的创建及删除 251
表的创建、删除及更名 252
记录的增加 253
记录的删除 254
记录的查询 255
记录的修改 256
13.3 MySQL运算符 257
算数运算符 258
比较运算符 258
逻辑运算符 260
位运算符 260
13.4 MySQL函数 261
数学函数 261
字符串函数 262
日期和时间函数 264
加密函数 267
控制流函数 268
与GROUP BY子句同时使用的函数 269
13.5 PHP5操作MySQL数据库 269
建立PHP5与MySQL数据库的连接 269
选择查询要作用的MySQL数据库 270
建立MySQL查询 270
获取记录 270
查询实例:在表单中显示查询结果 271
修改数据 274
添加数据 276
获取数据库信息 279
13.6示例:数据库操作类的实现与应用 279
创建类 279
声明类变量 279
连接数据库 279
设置操作数据库行为 280
声明类的对象变量 282
使用类的属性和行为 282
具体操作 282
13.7本章小结 283
第14章 MySQL的高级应用 284
14.1 MySQL与存储过程 284
存储过程的创建 284
存储过程的参数 285
复合语句 287
变量 287
条件语句 288
循环语句 288
存储过程的查看、更改和删除 289
PHP5调用存储过程 290
14.2 MySQL与触发器 290
触发器的创建与触发 290
查看已创建的触发器 292
触发器的删除 292
14.3 MySQL与视图 292
视图的本质 292
视图的创建 293
视图的查看、修改和删除 294
视图的应用 294
14.4本章小结 299
第15章Smarty模板引擎 300
15.1 Smarty简介 300
什么是Smarty 300
Smarty的优点 300
15.2 Smarty的安装与配置 301
Smarty的安装 301
Smarty的配置 301
15.3 Smarty基本语法 303
Smarty中的使用注释 303
函数 303
常量与变量的使用 306
配置文件 311
$smarty保留变量 313
变量调节器 313
组合变量调节器 315
循环方法 316
条件判断 320
比较运算 321
包含文件 322
获取输出内容 323
15.4本章小结 325
第16章 Ajax技术 326
16.1 Ajax概述 326
Ajax简介 327
Ajax工作原理 328
为什么使用Ajax 329
16.2Ajax用到的核心技术 329
XMLHttpRequest对象 332
JavaScript语言 333
DOM技术 334
XML 334
16.3 XMLHttpRequest对象 336
对象初始化 336
指定响应处理函数 337
发出HTTP请求 338
处理服务器返回的信息 340
初步开发框架 341
16.4 Prototype框架 342
Prototype简介 342
常用函数 342
16.5 Prototype对Ajax的支持 346
Ajax Options选项 346
Ajax.PeriodicalUpdater类 348
Ajax.Request类 348
Ajax.Responders类 349
Ajax.Updater类 351
16.6 Prototype对象参考 351
Array对象 351
Class对象 352
Date对象 352
Form对象 352
16.7 PHP5与Prototype在动态网站中的应用举例 353
登录界面 353
服务器端代码 354
JavaScript控制 354
16.8本章小结 355
第17章 开发示例:在线投票系统 356
17.1系统需求分析 356
数据库方面 356
访客投票的实现 356
投票项目的新增、修改和删除 356
调查的统计分析结果 358
预防投票作弊 358
发布一个投票调查 358
17.2 MySQL数据库设计 358
17.3投票界面 359
17.4服务器端脚本代码 361
数据库连接公共文件 361
投票项目的新增、修改和删除 361
简版投票脚本 366
完整显示投票项目脚本 367
投票处理脚本 368
新注册用户确认处理 372
发布投票 373
投票统计结果 375
17.5本章小结 376
第18章 开发示例:会员管理系统 377
18.1系统需求分析 377
18.2系统预览 377
18.3 MySQL数据库设计 381
18.4系统公共文件实现 382
MySQL数据库基类 382
Smarty模板基类 382
Ajax公共脚本文件 382
inc.php公共文件 383
main.css样式表公共文件 383
所有页面的头部、左侧目录公共模板文件 386
18.5会员管理系统首页实现 387
18.6用户注册页面的实现 387
18.7用户登录页面的实现 391
18.8编辑用户信息页面实现 392
18.9用户照片上传页面的实现 394
18.10用户注销登录页面 396
18.11会员列表页面 396
18.12 PHP程序脚本 401
18.13本章小结 406
第19章 开发示例:新闻发布系统 407
19.1系统需求分析 407
19.2系统预览 407
19.3 MySQL数据库设计 412
19.4系统公共文件实现 412
MySQL数据库基类 412
Smarty模板基类 412
FCKeditor所见即所得基类 412
Ajax公共脚本文件 413
inc.php公共文件 413
main.css样式表公共文件 413
后台页面的头部、底部公共模板文件 420
后台页面动态生成下拉框所用的js文件 421
栏目目录、新闻业务基类 422
19.5新闻发布系统首页的实现 428
19.6新闻栏目列表页面的实现 431
19.7新闻详细显示页面 433
19.8后台管理页面的实现 435
19.9 Ajax传值实现 441
19.10本章小结 442
附录A 正则表达式中元字符的行为 443