第1章 PHP5概述 1
1.1 PHP5可以做什么 1
目录 1
1.2 PHP发展历史 3
1.2.1 PHP/FI 3
1.2.2 PHP3 3
1.2.3 PHP4 3
1.3 PHP特点分析 4
1.3.1 HTTP认证 4
1.2.4 PHP5 4
1.3.2 Cookie 6
1.3.3 XForms 7
1.3.4 文件上传 8
1.3.5 使用远程文件 12
1.3.6 连接处理 13
1.3.7 数据库永久连接 14
1.3.8 安全模式 15
1.3.9 命令行模式 19
1.4 PHP5的特性 25
1.4.1 向后非兼容性变更 26
1.4.3 配置文件迁移 27
1.4.2 CLI和CGI 27
1.4.4 新函数 28
1.4.5 新指令 30
1.4.6 数据库 30
1.4.7 新对象模型 30
1.3.8 命名空间 45
1.5 PHP5和其他脚本语言 45
1.6 小结 46
第2章 安装和配置PHP5环境 47
2.1 Winodws下安装配置PHP5 47
2.1.1 安装配置PHP 48
2.1.2 MySQL安装 49
2.1.3 IIS配置 50
2.1.4 安装配置Apache 50
2.1.5 Zend优化器安装 51
2.1.6 测试 51
2.2 Linux下安装配置PHP5 52
2.2.1 安装MySQL程序 52
2.2.2 安装Apache和PHP5 53
2.2.3 测试 54
2.3 详解Apache2和PHP5配置文件 55
2.3.1 详解Apache2配置文件 55
2.3.2 HTTP守护进程的运行参数 56
2.3.3 详解PHP5配置文件 61
2.4 小结 66
第3章 PHP5语法结构 67
3.1 PHP基本语法 67
3.1.1 分析PHP代码块 67
3.1.2 指令分隔符的使用 68
3.1.3 注释符的使用 69
3.2 数据类型 69
3.2.1 布尔型 70
3.2.2 整型 71
3.2.4 字符串 72
3.2.3 浮点型 72
3.2.5 数组 76
3.2.6 对象 80
3.2.7 资源 80
3.2.8 NULL 80
3.3 常量与变量 81
3.3.1 常量 81
3.3.2 变量 82
3.4 运算符和表达式 85
3.4.1 运算符 85
3.4.2 表达式 88
3.5 流程控制 90
3.5.1 替代语法 91
3.5.2 条件语句 91
3.5.3 分支语句 92
3.5.4 循环语句 94
3.5.5 其他控制语句 98
3.6 函数 102
3.6.1 函数的参数 102
3.6.2 返回值 104
3.6.3 变量函数 104
3.7.1 类 105
3.7 类和对象 105
3.7.2 继承 107
3.7.3 构造函数 107
3.7.4 PHP5中关于类的新特性 109
3.8 小结 118
第4章 MySQL管理 119
4.1 SQL基础 119
4.1.1 数据库表 119
4.1.2 创建表 120
4.1.3 删除表 121
4.1.4 数据库记录操作 121
4.1.5 select查询操作 124
4.1.6 运算函数 125
4.2 关系数据库设计概要 129
4.2.1 关系数据库概述 129
4.2.2 关系数据库的正规化 129
4.3 MySQL基本操作 133
4.4 数据类型和数据表 134
4.4.1 MySQL数据类型 135
4.4.2 数据表 136
4.4.3 数据表操作 137
4.5 查询 138
4.5.1 MySQL查询 138
4.5.2 查询实例 141
4.6 创建和使用数据库 145
4.6.1 创建并使用数据库 146
4.6.2 创建数据表 146
4.6.3 转载数据到数据表 148
4.6.4 检索信息 149
4.6.5 使用多个数据表 161
4.7 获得数据库和表的信息 163
4.8 用批处理模式使用MySQL 164
4.9 小结 165
5.1.2 创建用户并授权 166
5.1.1 用户管理 166
5.1 MySQL管理与操作 166
第5章 MySQL管理和性能优化 166
5.1.3 实例:管理用户 168
5.1.4 撤权和删除用户 170
5.1.5 备份数据库 171
5.2 性能优化 175
5.2.1 编译优化 175
5.2.2 优化服务器参数 176
5.2.3 表的类型 179
5.2.4 使用命令优化数据库 180
5.3 MySQL查询分析与优化 183
5.3.1 索引的类型 184
5.3.2 单列索引与多列索引 185
5.3.3 选择索引列 186
5.3.4 分析索引效率 187
5.3.5 索引的缺点 188
5.3.6 使用临时表进行查询优化 188
5.4 小结 189
第6章 MySQL的安全性 190
6.1 安全性问题 190
6.1.1 内部安全性 190
6.2 MySQL授权表 192
6.1.2 外部安全性 192
6.2.1 授权表范围列 194
6.2.2 授权表权限列 194
6.2.3 管理权限 194
6.3 控制客户访问 195
6.3.1 范围列内容 195
6.3.2 查询访问验证 197
6.3.3 范围列匹配顺序 197
6.4 避免授权表风险 198
6.5 不用grant设置用户 199
6.6.1 实例:添加用户 200
6.6 实例 200
6.6.2 实例:使MySQL更安全 202
6.7 小结 202
第7章 数据库编程 203
7.1 访问MySQL的相关函数 203
7.1.1 连接数据库服务器函数 203
7.1.2 关闭数据库连接函数 204
7.1.3 选择数据库函数 204
7.1.4 SQL查询函数 205
7.1.5 数据库记录操作函数 206
7.1.7 数据库信息函数 208
7.1.6 数据库级操作函数 208
7.1.8 取数据库名和表名函数 210
7.2 创建和操纵MySQL数据库 213
7.3 PHP5+MySQL编程实例 215
7.3.1 实例:查看数据表 215
7.3.2 实例:使用表单添加数据 218
7.3.3 实例:编辑数据库中记录 221
7.3.4 实例:删除数据库中记录 224
7.4 使用ADOdb类库进行数据库开发 227
7.4.1 安装ADOdb 228
7.4.2 使用脚本连接数据库 229
7.4.3 在数据库中进行选择操作 230
7.4.4 插入、更新记录 231
7.4.5 对查询进行缓存 231
7.4.6 处理查询结果 232
7.4.7 限制查询结果 233
7.4.8 处理事务 233
7.5 小结 234
第8章 使用Cookie和Session 235
8.1 使用Cookie技术 235
8.1.1 什么是Cookie 235
8.1.2 Cookie如何工作 236
8.1.3 在PHP中使用Cookie 237
8.1.4 实例:记录每个用户的信息 239
8.2 使用Session技术 240
8.2.1 Session简介 240
8.2.2 PHP中Session的实现 241
8.3 小结 256
第9章 正则表达式 257
9.1 关于正则表达式 257
9.1.1 正则表达式历史 257
9.1.2 正则表达式分类 257
9.2 基本语法 257
9.2.1 元字符 258
9.2.2 使用元字符 261
9.3 PHP中的正则表达式 262
9.3.1 ereg()函数 263
9.3.2 字符簇 263
9.3.3 在PHP中使用字符簇 264
9.4 小结 265
第10章 类和对象 266
10.1 对象和类的基本概念 266
10.2 PHP中类和对象的使用 266
10.2.1 定义类 267
10.2.3 使用对象的变量与方法 268
10.2.2 在PHP中使用类 268
10.2.4 创建一个构造器 269
10.2.5 类的继承 270
10.2.6 使用多态 271
10.2.7 使用类的静态方法 271
10.2.8 方法工厂 272
10.2.9 设计使用Web页的样式类 272
10.3 高级OOP技术 278
10.3.1 序列化 278
10.3.2 拷贝和克隆 279
10.4 小结 280
11.2 PHP5套接字函数 281
11.2.1 套接字函数 281
第11章 Socket编程 281
11.1 Socket基础 281
11.2.2 PHP5套接字函数 282
11.2.3 实例:一个简单的TCP服务器 282
11.3 其他应用 284
11.3.1 SMTP基础 284
11.3.2 使用Socket发送E-mail 285
11.3.3 聊天室实现 292
11.3.4 实例:一个基于Web的新闻组浏览器 293
11.4.1 HTTP和HTTPS 294
11.4 PHP支持的协议/封装协议 294
11.4.2 FTP和FTPS 296
11.4.3 PHP输入/输出流 297
11.4.4 压缩流 298
11.5 小结 299
第12章 模板技术 300
12.1 使用模板的优势 300
12.1.1 分离功能和布局 300
12.1.2 避免页面元素重复 302
12.2.2 使用FastTemplate 304
12.2.1 FastTemplate模板的来历 304
12.2 FastTemplate 304
12.2.3 实例:编制一个表格 306
12.2.4 模板的执行速度 308
12.3 PHPLIB Template 308
12.3.1 使用PHPLIB模板 309
12.3.2 嵌套的模板 310
12.3.3 添加模板文本 311
12.4 比较PHPLIB Template和FastTemplate 311
12.4.1 PHPLIB Template和FastTemplate的共同点 312
12.4.2 技术的易用性 312
12.5 小结 313
第13章 程序优化和安全 314
13.1 编写灵活有效的PHP代码 314
13.1.1 数据库无关性 314
13.1.2 界面无关性 314
13.1.3 可移植性 316
13.1.4 面向对象/函数化 316
13.2 优化PHP5代码 316
13.2.1 安装Zend Optimizer 316
13.2.2 使用Cache提速PHP 317
13.2.3 Web内容的压缩 317
13.3 PHP5安全 318
13.3.1 一般策略 319
13.3.2 安装为CGI程序 319
13.3.3 安装为Apache模块 321
13.3.4 文件系统安全 322
13.3.5 数据库安全 323
13.3.6 错误报告 327
13.3.7 使用register_globals 329
13.3.8 用户提交的数据 330
13.3.9 隐藏PHP 331
13.4.1 数据加密基础 332
13.4.2 PHP的加密功能 332
13.3.10 更新到最新版本 332
13.4 用PHP进行数据加密 332
13.4.3 使用Mcrypt加密算法扩展库 335
13.4.4 使用Mhash扩展库 337
13.5 使用SSI 339
13.5.1 SSI基础知识 339
13.5.2 启动SSI 339
13.5.3 SSI语法格式 340
13.6 小结 344
14.1 XML概述 345
14.1.1 XML元标记语言 345
第14章 XML应用 345
14.1.2 XML描述的结构和语义 346
14.2 使用PHP的XML解析器Expat 347
14.2.1 Expat简介 347
14.2.2 编译Expat 348
14.2.3 实例:使用Expat解析XML 348
14.2.4 产生XML解析器实例的函数 352
14.2.5 对文档进行解析 353
14.2.6 显示统计信息 354
14.2.7 实例:用PHP XML编写简单的搜索引擎 354
14.3 小结 356
15.1.1 用include和require进行模块化 357
第15章 建设简单交互网站 357
15.1 计划一个站点 357
15.1.2 从HTML到PHP 359
15.2 添加计数器 361
15.2.1 计数函数 361
15.2.2 改进计数器 362
15.3 添加反馈表单 365
15.3.1 编写输入表单和处理数据 365
15.3.2 配置php.ini文件 368
15.4 添加站内搜索引擎 368
15.5.1 基于HTTP验证 369
15.5 添加密码验证功能 369
15.5.2 使用PHP对用户身份进行验证 370
15.5.3 根据指定验证信息核实用户身份 370
15.5.4 另一种简单的密码验证 371
15.6 添加文件上传功能 372
15.7 添加投票功能 374
15.8 添加动态banner 378
15.9 小结 380
A.1.5 解释 381
A.1.4 讨论 381
A.1.3 缺点 381
A.1.2 优点 381
A.1 介绍 381
附录A PHP5编码规范 381
A.1.1 标准化的重要性 381
A.2 命名规则 382
A.2.1 合适的命名 382
A.2.2 类命名 382
A.2.3 方法和函数命名 382
A.2.5 类命名 383
A.2.6 类库命名 383
A.2.4 缩写词不要全部用大写字母 383
A.2.7 方法命名 384
A.2.8 类属性命名 384
A.2.9 方法中参数命名 384
A.2.10 变量命名 384
A.2.11 引用变量和函数 385
A.2.12 全局变量 385
A.2.13 定义命名/全局常量 385
A.2.14 静态变量 385
A.2.15 函数命名 385
A.3.1 大括号规则 386
A.3.2 缩进/制表符/空格规则 386
A.3 书写规则 386
A.2.16 错误返回检测规则 386
A.3.3 括号、关键词和函数规则 387
A.3.4 If..Then..Else格式 387
A.3.5 switch格式 388
A.3.6 continue,break和问号 388
A.3.7 声明块的定位 389
A.3.8 其他规则 389
A.3.9 布尔逻辑类型 390
A.3.10 避免嵌入式赋值 390
A.4.4 讲一个故事 391
A.4.3 创建知识库 391
A.4.2 建立小型代码库 391
A.4.1 重用你和他人的工作 391
A.4 帮助与共享 391
A.4.5 归档注释 392
A.4.6 注释结构 392
A.5 其他 394
A.6 PHP文件扩展名 395
A.7 PHP代码标记 395
附录B PHP5类型和比较符表 396
附录C 函数别名列表 398
附录D 保留字列表 406
附录E 资源类型列表 413
参考文献 431