第1篇PHP基础应用 2
第1章 文件系统与文本数据操作 2
1.1 PH P中目录操作详解 2
1.1.1打开目录 2
1.1.2关闭目录 3
1.1.3读取目录中的文件 3
1.1.4创建目录 3
1.1.5删除目录 4
1.2 PHP中文件操作详解 4
1.2.1打开文件 4
1.2.2关闭文件 5
1.2.3读取文件 5
1.2.4写入文件 6
1.2.5删除文件 6
1.2.6复制文件 7
1.3本地文件的操作实例——小型留言本 7
1.3.1留言发表模块 7
1.3.2浏览模块 9
1.4远程文件的操作实例 10
1.5文件的上传与下载 10
1.5.1文件的上传 10
1.5.2文件的下载 11
1.6小结 12
第2章 字符的处理与正则表达式 13
2.1字符类型的特殊性 13
2.2字符的显示与格式化 14
2.2.1字符的显示 14
2.2.2字符的格式化 14
2.3常见的操作 15
2.3.1字符串重复操作——str-repeat 15
2.3.2字符串替换操作——str-replace和str-ireplace 16
2.3.3字符串分解操作——str-split 17
2.3.4字符串单词数的计算函数——str-word-count 18
2.3.5字符串查找操作——strstr 19
2.3.6获得字符串长度——strlen 19
2.3.7获得字符串子串——substr 19
2.4正则表达式简介 20
2.5正则表达式与字符操作综合应用 20
2.5.1获得与模式匹配的数组单元——preg-grep 21
2.5.2进行全局正则表达式匹配——preg-match-all 21
2.5.3进行正则表达式匹配——preg-match 23
2.5.4转义正则表达式字符——preg-quote 24
2.5.5执行正则表达式的搜索和替换的函数——preg-replace 25
2.5.6通过回调函数执行正则表达式的搜索和替换——preg-replace-callback 25
2.5.7用正则表达式进行字符串分割——preg-split 26
2.6字符操作的注意事项 27
2.7小结 29
第3章 数组操作与数据结构算法 30
3.1一维数组与多维数组 30
3.1.1一维数组简介 30
3.1.2多维数组简介 30
3.2常用的数组操作 31
3.2.1数组的创建与调用 31
3.2.2数组的更新 32
3.2.3数组元素的遍历 33
3.3数组索引与键值的操作技巧 34
3.4数组的排序 36
3.4.1递增排序——sort 36
3.4.2递减排序——rsort 36
3.4.3数组排序——array-multisort 37
3.5几种数组的应用实例 38
3.5.1顺序查找 38
3.5.2二分法查找 39
3.5.3使用array-search函数进行查找 39
3.5.4线性表的入栈与出栈 40
3.5.5数组的合并 42
3.5.6数组的拆分 43
3.5.7随机排序 44
3.6小结 45
第4章PHP程序调试 46
4.1 PHP中的错误类型 46
4.1.1语法错误 46
4.1.2语义错误 47
4.1.3逻辑错误 47
4.1.4注释错误 47
4.1.5运行时错误 48
4.2 PHP程序调试策略 48
4.2.1 PHP的错误级别 48
4.2.2打开PHP的错误报告 49
4.2.3使用print进行程序调试 50
4.3使用PHPEclipse进行PHP程序调试 51
4.3.1使用Eclipse编写PHP程序的好处 51
4.3.2 PHPEclipse的安装与启动 51
4.3.3 PHPEclipse的使用 52
4.3.4 PHPEclipse的语法错误强调功能 53
4.3.5 PHPEclipse的调试界面 54
4.3.6使用PHPEclipse调试PHP代码的常见问题 57
4.4错误的处理 58
4.4.1错误的隐藏 58
4.4.2错误信息的定制 59
4.4.3超时错误的处理 60
4.5小结 61
第5章PHP中的异常处理 62
5.1异常处理的原理 62
5.2 PHP中的异常处理 62
5.2.1异常类Exception 63
5.2.2异常抛出关键字throw 64
5.2.3异常捕获语句try-catch 65
5.2.4异常处理函数设置set-exception-handler 66
5.2.5完整的异常信息 67
5.3扩展的异常处理类 68
5.4异常的传递与重掷 71
5.5小结 73
第6章PHP与表单 74
6.1 HTML表单简介 74
6.1.1表单标签form 74
6.1.2输入标签input与文本框 75
6.1.3按钮 76
6.1.4单选框与复选框 77
6.1.5多行文本域标签textarea 78
6.1.6下拉框与列表框标签select 79
6.2表单数据的接收 79
6.2.1 GET方法 80
6.2.2 POST方法 82
6.3常用表单数据的验证方法 83
6.3.1姓名验证 83
6.3.2日期验证 84
6.3.3 E-mail地址验证 84
6.3.4密码字段的验证 84
6.3.5改进的用户信息输入程序 85
6.4 URL编码解码函数 87
6.4.1编码字符串——urlencode 87
6.4.2解码字符串——urldecode 87
6.5小结 88
第7章PHP与JavaScript交互 89
7.1 JavaScript简介 89
7.2 JavaScript的数据类型 89
7.3 JavaScript程序设计基础 90
7.3.1在HTML中嵌入JavaScript 90
7.3.2变量 91
7.3.3注释 91
7.3.4函数的定义与调用 92
7.3.5条件语句 92
7.3.6循环语句 95
7.3.7对象 97
7.3.8事件 98
7.4 PHP动态生成JavaScript代码 99
7.4.1多行输出 99
7.4.2单行输出 99
7.4.3 PHP动态生成JavaScript实例——进度条 100
7.5 JavaScript中调用PHP程序 101
7.5.1页面的跳转 101
7.5.2隐性调用PHP程序 102
7.6 JavaScript和PHP综合实例——表单验证 102
7.6.1表单设计 103
7.6.2 JavaScript代码设计 104
7.6.3 PHP代码设计 105
7.6.4代码的运行 106
7.7小结 107
第2篇 PHP与数据库 110
第8章 关系型数据库的基础知识 110
8.1关系型数据库与关系型数据库系统的介绍 110
8.2关系型数据库系统的结构与运行过程 111
8.2.1关系型数据库系统的层次结构 111
8.2.2关系型数据库系统的运行过程 111
8.3常用关系型数据库的介绍 112
8.3.1 MySQL 112
8.3.2 ORACLE 112
8.3.3 SYBASE 113
8.3.4 DB2 113
8.3.5 SQL Server 113
8.4 SQL语言简介 113
8.5常见数据库设计问题 114
8.6关系型数据库的设计原则 114
8.6.1第一范式(1NF) 115
8.6.2第二范式(2NF) 115
8.6.3第三范式(3NF) 116
8.7数据库设计的方法与步骤 116
8.7.1需求分析 117
8.7.2概念设计的E-R方法 121
8.7.3数据库逻辑设计方法 121
8.7.4物理设计阶段 124
8.7.5数据库实施阶段 124
8.7.6数据库运行和维护阶段 124
8.8小结 124
第9章MySQL的安装与操作 125
9.1 MySQL数据库服务器介绍 125
9.2安装与配置 125
9.2.1下载MySQL 125
9.2.2 MySQL的安装 126
9.2.3 MySQL的配置 127
9.2.4 MySQL的启动与关闭 129
9.3数据库与表的创建 129
9.3.1登录与退出MySQL命令行管理模式 130
9.3.2 MySQL的数据库操作 130
9.3.3表的创建 132
9.4数据类型的介绍 134
9.5索引与唯一值的介绍 135
9.6数据的操作 136
9.6.1表的修改 136
9.6.2表的删除 137
9.6.3数据的查询 137
9.6.4数据的插入 142
9.6.5数据的更新 143
9.6.6数据的删除 144
9.7小结 144
第10章MySQL与PH的应用 145
10.1 PHP结合数据库应用的优势 145
10.2 Web数据库的工作原理 145
10.3使用PHP操作MySQL数据库 146
10.3.1数据库服务器的连接与断开 146
10.3.2选择数据库 147
10.3.3执行SQL语句 147
10.3.4获得查询结果集中的记录数 149
10.3.5获得结果集中的某一条记录 149
10.3.6逐行获取结果集中的每一条记录 150
10.3.7结果集的分页 152
10.3.8用户动态添加记录 153
10.3.9用户动态更新记录 155
10.3.10用户动态删除记录 157
10.4使用PHP获取MySQL数据库的信息 158
10.4.1获取数据库的信息 159
10.4.2获取表的信息 159
10.4.3获取列的数目 160
10.4.4获取列的名称 160
10.4.5获取列的数据类型 160
10.4.6获取列的长度 161
10.4.7获取列的标志 161
10.4.8一个完整的查看表中各列属性的实例 162
10.5常见问题与解决方案 162
10.6小结 164
第11章 数据库中的程序逻辑 165
11.1数据库程序逻辑与PHP程序逻辑的分体设计原则 165
11.2数据库程序逻辑与数据的关系 165
11.3存储过程的设计 166
11.3.1定界符重定义 166
11.3.2存储过程的创建与调用 167
11.3.3存储过程的参数 168
11.3.4复合语句 170
11.3.5变量 170
11.3.6条件语句 172
11.3.7循环语句 173
11.3.8游标 175
11.3.9存储过程的删除 177
11.4触发器的设计 177
11.4.1触发器的创建与触发 177
11.4.2触发器的删除 178
11.5 PHP与存储过程、触发器 178
11.5.1 PHP调用存储过程 178
11.5.2 PHP调用触发器 179
11.6小结 180
第12章Session与Cookie 181
12.1 Session与Cookie简介 181
12.2 PHP中Session的实现 181
12.2.1标识开始使用Session 182
12.2.2 Session预定义数组 182
12.2.3 Session的检测与注销 182
12.2.4 PHP中Session处理的定制 183
12.3 Session应用实例——登录验证 187
12.3.1数据库设计 187
12.3.2 HTML表单的设计 187
12.3.3验证页面的编写 188
12.3.4欢迎页面的编写 189
12.3.5注销页面的编写 189
12.3.6代码的运行 189
12.3.7代码的改进 190
12.4 PHP中Cookie的实现 191
12.4.1 Cookie语法格式 191
12.4.2 Cookie预定义数组 191
12.4.3创建一个Cookie 191
12.4.4创建一个有时间限制的Cookie 192
12.4.5创建一个有范围限制的Cookie 192
12.4.6删除Cookie 193
12.4.7浏览器重定向 193
12.4.8 Cookie的常见问题 193
12.5 Cookie应用实例——登录验证 194
12.5.1 HTML表单的设计 194
12.5.2验证页面的编写 194
12.5.3欢迎页面的编写 195
12.5.4注销页面的编写 196
12.5.5代码的运行 196
12.6 Cookie与Session的比较 197
12.7小结 197
第13章MySQL与PH的应用实例——留言本 198
13.1留言本实例的系统分析 198
13.1.1系统简介 198
13.1.2系统模型设计 198
13.1.3数据库设计 199
13.1.4公共功能设计 200
13.2使用MySQL与PHP创建一个留言本 200
13.2.1查看留言功能 201
13.2.2发表留言功能 203
13.2.3管理员身份验证功能 205
13.2.4管理首页设计 206
13.2.5留言回复功能 208
13.2.6留言删除功能 209
13.2.7留言回复删除功能 210
13.2.8留言审批功能 210
13.2.9退出管理员登录功能 211
13.3小结 211
第14章PostgreSQL与PHP的应用 212
14.1 PostgreSQL简介 212
14.2 PostgreSQL的安装 212
14.2.1 PostgreSQL的下载 212
14.2.2 PostgreSQL的安装步骤 213
14.2.3 PostgreSQL服务的启动与停止 214
14.3 PostgreSQL的基本操作 214
14.3.1 pgAdmin Ⅲ的启动 214
14.3.2服务器的连接 214
14.3.3创建一个新数据库 215
14.3.4创建一个表 215
14.3.5对表中数据的操作 217
14.3.6 SQL语句的执行 217
14.4使用PHP存取PostgSQL数据库 218
14.4.1使用PHP的PostgSQL扩展 218
14.4.2数据库的连接与关闭 218
14.4.3执行SQL语句 219
14.4.4获得查询结果集中的记录数 220
14.4.5逐行获取结果集中的每一条记录 221
14.4.6数据的插入、更新和删除 222
14.4.7执行动态SQL语句 225
14.4.8 information-schema 227
14.5小结 228
第15章SQL Server与PHP的应用 229
15.1 SQL Server简介 229
15.2 SQL Server的安装 230
15.2.1 SQL Server的安装步骤 230
15.2.2 SQL Server Management Studio 231
15.3 SQL Server的基本操作 232
15.3.1创建一个数据库 232
15.3.2创建一个表 232
15.3.3对表中数据的操作 233
15.3.4 SQL语句的执行 233
15.4使用PHP存取SQL Server数据库 234
15.4.1使用PHP的mssql扩展 234
15.4.2数据库的连接与关闭 234
15.4.3执行SQL语句 235
15.4.4获得查询结果集中的记录数 236
15.4.5逐行获取结果集中的每一条记录 237
15.5小结 239
第16章Oracle与PHP的应用 240
16.1 Oracle简介 240
16.2 Oracle的安装 241
16.2.1 Oracle的安装过程 241
16.2.2 Oracle Application Express 241
16.3Oracle的基本操作 242
16.3.1创建一个表 242
16.3.2对表中数据的操作 244
16.3.3 SQL语句的执行 244
16.4使用PHP存取Oracle数据库 245
16.4.1使用PHP的oci8扩展 245
16.4.2数据库的连接与关闭 246
16.4.3执行SQL语句 246
16.4.4逐行获取结果集中的每一条记录 247
16.5小结 248
第17章 不同数据库的差异 249
17.1SQL语言标准以及常见关系型数据库的SQL扩展 249
17.1.1 ANSI SQL语言标准 249
17.1.2 MySQL对ANSI SQL的扩充 250
17.1.3 SQL Server的T-SQL 251
17.1.4 Oracle的PL/SQL 252
17.2 PHP数据库应用的差异 253
17.2.1 MySQL与PHP的应用 253
17.2.2 PostgreSQL与PHP的应用 253
17.2.3 SQL Server与PHP的应用 254
17.2.4 Oracle与PHP的应用 255
17.2.5 SQLite与PHP的应用 255
17.2.6 Access与PHP的应用 256
17.2.7 ODBC与PHP的应用 256
17.3小结 258
第3篇PHP的高级应用 260
第18章PEAR、PECL的应用 260
18.1 PEAR与PECL的介绍 260
18.2 PEAR类库组件的安装 260
18.3 PEAR类库的安装与使用 264
18.3.1查看已安装PEAR包 264
18.3.2查看PEAR包的详细信息 264
18.3.3安装一个PEAR包 265
18.3.4 PEAR包的升级 266
18.3.5 PEAR包的使用 266
18.4常用的PEAR类库实例 266
18.4.1使用DB类库进行数据库查询 267
18.4.2使用Auth-HTTP类库进行身份校验 269
18.4.3使用HTML-Template-IT类库进行模板替换 271
18.5 PECL扩展库的安装与使用 272
18.6 PECL扩展库应用实例——Zip扩展 272
18.6.1Zip扩展的安装 273
18.6.2一个Zip扩展应用实例 273
18.7小结 274
第19章ADOdb类库应用 275
19.1 ADOdb介绍 275
19.1.1 ADOdb的优势 275
19.1.2 ADOdb的适用场合 276
19.2 ADOdb类库的安装与配置 276
19.2.1 ADOdb的下载与安装 276
19.2.2 ADOdb的第一个测试程序 276
19.3 ADOdb的常用数据库操作 278
19.3.1连接数据库 278
19.3.2数据的插入、更新和删除 281
19.3.3数据查询 281
19.3.4记录分页的实现 283
19.3.5多个数据库的连接方法 285
19.4 ADOdb的程序调试 286
19.5小结 288
第20章FPDF类库应用 289
20.1 FPDF简介 289
20.2 FPDF的安装与配置 289
20.3 FPDF创建PDF文档 289
20.3.1 FPDF创建Hello World 290
20.3.2在PDF中插入图片 291
20.3.3页眉与页脚 292
20.3.4绘制表格 293
20.4为FPDF增加中文支持 295
20.5 FPDF的实际应用 296
20.5.1为文章系统创建PDF页面 297
20.5.2动态生成企业产品名录 299
20.6小结 300
第21章PHP的缓存与静态化应用 301
21.1为什么要静态化 301
21.2大型应用的缓存机制与静态化 304
21.2.1缓存机制 304
21.2.2静态化机制 305
21.3 PHP如何实现静态化 305
21.3.1根据模板生成静态页面 305
21.3.2数据库与静态页的关系 306
21.3.3静态页内容的修改 308
21.3.4模板的替换 309
21.3.5静态页上的动态操作 310
21.3.6静态页面文件的目录 311
21.4小结 314
第22章PHP与XML格式操作 315
22.1 XML简介 315
22.2简单的XML操作 316
22.2.1创建一个SimpleXML对象 316
22.2.2读取SimpleXML对象中的XML数据 318
22.2.3 XML数据的修改 322
22.2.4标准化XML数据 322
22.2.5 XML数据的存储 322
22.3 XML文档的动态创建 323
22.3.1 DOM简介 324
22.3.2 DOM文档的创建与使用 324
22.3.3 DOM元素的操作 327
22.3.4 DOM节点的操作 329
22.3.5 DOM组件操作实例 329
22.4 XSLT的使用 330
22.4.1 XSLT简介 331
22.4.2使用PHP与XSLT生成HTML页面 332
22.5 XML应用实例——留言本 333
22.5.1 XML文件结构设计 333
22.5.2提交页面的编写 334
22.5.3显示页面的编写 335
22.6 XML应用实例二——为网站生成RSS页面 336
22.6.1什么是RSS 336
22.6.2 RSS页面的编写 338
22.7小结 339
第23章Smarty类库 340
23.1 Smarty简介 340
23.2 Smarty的安装与配置 341
23.2.1 Smarty的安装 341
23.2.2 Smarty的配置 341
23.3 Smarty程序设计 342
23.3.1简单的Smarty程序设计 342
23.3.2模板对象属性的定义 343
23.3.3 Smarty程序编写的一般步骤 344
23.4 Smarty模板设计 344
23.4.1模板中的变量 344
23.4.2变量的修饰 345
23.4.3区域循环方法 346
23.4.4模板中的条件判断 348
23.4.5外部文件的载入 350
23.5 Smarty的实际应用——多模板网站 351
23.5.1模板的设计 351
23.5.2页面实现 352
23.6小结 353
第24章ThinkPHP框架 354
24.1 ThinkPHP的安装与项目创建 354
24.1.1 ThinkPHP的获取与安装 354
24.1.2项目入口文件 354
24.1.3项目的创建 355
24.2项目的配置 355
24.3控制器类的创建 356
24.3.1控制器的模块与操作 356
24.3.2 URL的处理 358
24.4模型类的创建 358
24.4.1模型的定义与实例化 359
24.4.2数据库的连接与操作 360
24.5模板文件的编写 362
24.5.1模板中的变量 362
24.5.2模板中函数的使用 363
24.5.3几种基本标签的使用 364
24.6 ThinkPHP应用实例——在线日程表 366
24.6.1数据库的设计 366
24.6.2模板的设计 367
24.6.3控制器的实现 368
24.7小结 369
第25章Zend Framework框架 370
25.1 Zend Framework的安装与项目创建 370
25.2 dispatcher与Bootstrap 372
25.3控制器程序的编写 372
25.3.1首页控制器程序的编写 373
25.3.2其他页面控制器程序的编写 374
25.4视图文件的调用 376
25.4.1默认视图文件的使用 376
25.4.2模板文件的调用 376
25.5数据模型的生成 377
25.5.1数据库的连接 377
25.5.2数据模型的创建 378
25.5.3数据模型的使用 379
25.6用户表单的处理 380
25.6.1用户表单的生成 380
25.6.2表单数据的验证与过滤 382
25.7 Zend Framework应用实例——留言本 384
25.8小结 388
第26章CakePHP框架 389
26.1 CakePHP的安装与配置 389
26.2 Scaffolding简介 391
26.3 CakePHP的数据模型 392
26.3.1数据模型的定义 392
26.3.2数据的查询 393
26.3.3数据的保存 395
26.3.4数据的删除 397
26.3.5对象的关联 398
26.4控制器的编写 400
26.4.1控制器的基本使用 400
26.4.2控制器的属性与方法 401
26.5视图的调用 404
26.5.1视图的布局 404
26.5.2视图的元素 405
26.5.3视图的缓存 405
26.6 ACL权限控制 406
26.6.1什么是ACL 406
26.6.2使用配置文件定义权限 407
26.6.3使用数据库定义权限 408
26.7 CakePHP应用实例——员工工资单 409
26.7.1登录框与权限控制 409
26.7.2工资单页面的编写 410
26.8小结 412
第27章Symfony框架 413
27.1 Symfony的安装 413
27.2开始一个新项目 414
27.3 Symfony的数据模型 416
27.3.1 Schema的编写 416
27.3.2数据模型初始化 420
27.4控制器与视图 421
27.4.1项目的基本构架 421
27.4.2视图的布局 422
27.4.3控制器与模板 424
27.5管理生成器 426
27.5.1管理后台的生成 427
27.5.2管理后台的配置 427
27.6 Symfony应用实例——个人博客 430
27.7小结 433
第28章PHP与图像操作 434
28.1 PHP图像函数库简介 434
28.2 GD库的配置 434
28.3一个简单图像创建程序 436
28.4 GD库的应用实例 437
28.4.1使用GD库创建图片缩略图 437
28.4.2使用GD库生成验证码 439
28.4.3使用GD库下载远程图片 441
28.4.4使用GD库为页面增加水印 441
28.5小结 442
第29章JpGraph创建统计图 443
29.1 JpGraph简介 443
29.2 JpGraph的安装与配置 443
29.2.1 JpGraph的安装 443
29.2.2 JpGraph的配置 444
29.3 JpGraph绘制统计图实例 444
29.3.1简单的X-Y坐标图 444
29.3.2改进的X-Y坐标图 447
29.3.3柱形图 450
29.3.4饼图 451
29.3.5 3D饼图 452
29.4 JpGraph应用实例——工厂销量查询系统 453
29.5小结 457
第30章PHP访问LDAP服务器 458
30.1 LDAP简介 458
30.2 LDAP服务器的安装与配置 459
30.2.1 OpenLDAP的安装 459
30.2.2 OpenLDAP的配置 460
30.2.3 OpenLDAP的启动与关闭 461
30.2.4 OpenLDAP的数据操作 462
30.2.5 phpLDAPadmin简介 463
30.3 PHP中LDAP扩展的配置 464
30.4 PHP与LDAP的相关操作 464
30.4.1连接LDAP服务器 464
30.4.2绑定LDAP服务器 465
30.4.3断开LDAP服务器 465
30.4.4查询LDAP目录内容 465
30.4.5获得查询结果中的值 467
30.4.6计算查询结果中的记录数 468
30.4.7向LDAP添加一条新记录 469
30.4.8更新LDAP中的一条记录 469
30.4.9从LDAP中删除一条新记录 470
30.4.10错误处理 470
30.5使用LDAP验证用户身份 471
30.6小结 472
第31章PHP与邮件系统 473
31.1 PHP邮件发送功能配置 473
31.1.1 PHP中的SMTP功能配置 473
31.1.2建立自己的SMTP服务器 474
31.2 PHP中的mail函数 476
31.2.1简单的邮件发送方法 476
31.2.2发送HTML格式文本 477
31.2.3发送带附件的邮件 477
31.3.个简单的邮件发送类 479
31.3.1邮件发送类的创建 479
31.3.2邮件发送系统的实现 481
31.4小结 483
第32章PHP优化器与加速器 484
32.1优化器Zend Optimizer 484
32.1.1 Zend Optimizer的安装 484
32.1.2 Zend Optimizer的配置 486
32.2加速器PHP Accelerator 487
32.2.1 PHP Accelerator的安装 487
32.2.2 PHP Accelerator的配置 488
32.3开源的优化器Turck MMCache 488
32.3.1 Turck MMCache的安装 489
32.3.2 Turck MMCache的配置 489
32.4开源的加速器eAccelerator 490
32.5小结 490
第4篇PHP与实际项目 492
第33章用PHP构建内容管理系统CMS 492
33.1了解CMS需求 492
33.2数据库设计 492
33.3关键技术的实现 495
33.3.1数据库连接公用代码 496
33.3.2网站开关的设计 496
33.3.3模板更换机制 496
33.3.4 HTML编码转换 497
33.4页面代码设计 497
33.4.1首页的实现 497
33.4.2注册页面的实现 501
33.4.3分类文章列表页面与文章显示页面的实现 503
33.4.4投稿页面与添加新文章页面的实现 507
33.4.5文章管理页面的实现 509
33.4.6文章类别维护页面的实现 513
33.4.7网站参数配置页面的实现 518
33.4.8网站模板管理页面的实现 521
33.4.9退出登录页面的实现 524
33.5小结 525
第34章用PHP构建搜索引擎 526
34.1 PHP对数据库数据的搜索 526
34.1.1数据库创建 526
34.1.2搜索页面的设计 527
34.1.3内容显示页面的设计 528
34.1.4系统集成的调度策略 529
34.2 PHP对文本文件的搜索 530
34.3 PHP对现有搜索引擎的调用 531
34.4小结 533
第35章PHp与企业办公自动化OA系统 534
35.1了解企业OA系统的需求 534
35.2数据库设计 535
35.3关键技术的实现 536
35.3.1根据登录用户的权限进入不同的页面 536
35.3.2项目与任务状态的级联更新 537
35.4页面代码的设计 538
35.4.1公共数据库连接代码 538
35.4.2登录页面的设计 538
35.4.3管理员/经理项目列表页面的设计 540
35.4.4创建新项目页面的设计 542
35.4.5项目修改页面的设计 545
35.4.6普通员工任务列表页面的设计 550
35.4.7新账号分配页面的设计 552
35.4.8账号权限设置页面的设计 555
35.4.9过期项目统计页面的设计 558
35.4.10经理项目分配情况统计页面的设计 560
35.4.11员工任务分配情况统计页面的设计 561
35.4.12公司项目运营情况统计页面的设计 562
35.5小结 565
第36章PHP与流程管理系统 566
36.1流程管理系统的需求 566
36.2数据库设计 567
36.3关键技术的实现 569
36.3.1使用触发器来记录请求更新日志 569
36.3.2根据角色的不同对请求进行不同的操作 569
36.4页面代码的实现 570
36.4.1设备维修请求列表页面的实现 570
36.4.2提交新请求页面的实现 572
36.4.3需要执行操作的请求列表页面的实现 574
36.4.4对请求执行操作页面的实现 576
36.4.5操作日志列表页面的实现 582
36.5小结 584
第37章 PHP与资源管理系统 585
37.1资源管理系统的需求 585
37.2数据库设计 586
37.3关键技术的实现 588
37.3.1使用SQL计算奖金额度 589
37.3.2使用触发器来限制奖金额度 589
37.3.3使用存储过程从其他数据表获取数据 590
37.3.4自动生成PHP代码控制网站开关 590
37.3.5使用JpGraph生成统计图 591
37.4各功能模块的具体实现 592
37.4.1用户权限认证的实现 592
37.4.2订单输入模块的实现 593
37.4.3库存管理模块的实现 597
37.4.4账目管理模块的实现 601
37.4.5奖金计算模块的实现 606
37.4.6年度统计模块的实现 609
37.5小结 611
第38章 多国语言处理策略 612
38.1对字符编码与GB2312、GBK和UTF-8的理解 612
38.1.1 GB2312与GBK 612
38.1.2 Unicode、UCS与UTF-8 612
38.1.3网页编码的实现 613
38.2GLS设计思想简介 614
38.3客户端语言选项的设置与获取 615
38.3.1客户端语言选项的设置 615
38.3.2使用PHP获取客户端语言选项 615
38.4一个简单的带有多国语言支持的应用开发 615
38.4.1数据库设计 615
38.4.2页面代码的开发 616
38.4.3语言设置页面的开发 620
38.4.4语言配置文件选取页面的开发 620
38.4.5语言配置文件的设计 621
38.5小结 624
第39章PHP在门户网站中的应用 625
39.1门户网站的特点 625
39.2静态缓存和动态缓存 626
39.2.1静态缓存与动态缓存简介 626
39.2.2一个对系统实现静态缓存的例子 626
39.2.3一个对系统实现动态缓存的例子 628
39.3门户网站中的交互设计 630
39.3.1什么是交互设计 631
39.3.2一个不好的交互设计例子 631
39.3.3改进的交互设计例子 633
39.4负载均衡技术简介 635
39.4.1常用的负载均衡技术 635
39.4.2常用的负载均衡算法 636
39.5一个使用用户排队机制解决网站大访问量的例子 636
39.6小结 638
第5篇PHP的扩展应用 640
第40章PHP与网络客户端 640
40.1 PHP访问远程Web页面 640
40.1.1 fsockopen函数 640
40.1.2一个远程提交数据的实例 641
40.2 PHP订阅RSS 642
40.2.1下载远程RSS 642
40.2.2 RSS的解析与保存 643
40.3 PHP访问FTP服务器 644
40.3.1连接和断开FTP服务器 644
40.3.2登录FTP服务器 644
40.3.3获取文件列表 645
40.3.4文件的上传、下载和删除 646
40.3.5目录的创建和删除 647
40.4 PHP的命令行模式 648
40.4.1 PHP命令行程序简介 648
40.4.2执行参数的获取 649
40.4.3一个使用命令行方式访问FTP的实例 649
40.5小结 652
第41章PHP与XML-RPC、SOAP 653
41.1 XML-RPC简介 653
41.1.1客户端请求的XML格式 653
41.1.2服务器响应的XML格式 656
41.1.3错误信息的XML格式 656
41.2 PHP与XML-RPC的结合实例 657
41.2.1 PHP的XML-RPC库介绍 657
41.2.2 PHP服务器端页面的编写 658
41.2.3 PHP客户端页面的编写 659
41.3 SOAP简介 659
41.4 PHP的SOAP应用实例 660
41.4.1 SOAP扩展库的使用方法 660
41.4.2服务器端的编写 661
41.4.3客户端的编写 662
41.5小结 662
第2章PHP与Web Service 663
42.1 Web Service简介 663
42.2 WSDL、UDDI与Web Service 664
42.2.1 WSDL简介 664
42.2.2 UDDI简介 664
42.3 PHP与Web Service的交互操作 665
42.3.1 NuSOAP类库 665
42.3.2 PHP创建Web Service 666
42.3.3 PHP访问Web Service 668
42.4小结 670
第3章PHP与Ajax 671
43.1 Ajax简介 671
43.1.1 Ajax工作原理 671
43.1.2 Ajax的优势与劣势 672
43.2 XMLHttpRequest的使用 672
43.2.1 Ajax初始化 672
43.2.2 XMLHttpRequest的属性和方法 673
43.2.3简单的服务器请求 674
43.2.4 HTML文件的读取 675
43.2.5 XML文件的读取 677
43.3 PHP与Ajax的交互 679
43.3.1使用GET方式与PHP交互 679
43.3.2使用POST方式与PHP交互 681
43.4 Ajax应用实例 682
43.4.1用户名唯一性验证的实现 682
43.4.2动态列表框的实现 684
43.4.3局部刷新页面的实现 685
43.4.4自动刷新页面的实现 688
43.4.5进度条的实现 689
43.4.6表单输入提示的实现 691
43.5小结 693
第44章PHP扩展的开发 694
44.1 PHP扩展开发简介 694
44.2使用Visual C++编写PHP扩展 694
44.2.1 PHP扩展开发的前期准备 695
44.2.2 PHP扩展代码模板的生成 696
44.2.3模板代码的修改与编译 697
44.2.4扩展模块的调用 699
44.3一个扩展应用实例的开发——简单加密解密函数 700
44.3.1加密函数的编写 700
44.3.2解密函数的编写 701
44.3.3测试代码的编写 701
44.4小结 702