第1部分 PHP概述 1
第1章 PHP概述 1
1.1 PHP基础 1
1.1.1 PHP入门 1
1.1.2 PHP的基本功能 2
1.2 PHP的发展 2
1.2.1 个人主页:PHP的第一个发行版本 2
1.2.2 PHP/FI:PHP的第二版 3
1.2.3 PHP 3:PHP的第三版 3
1.2.4 PHP 4: PHP的最新版本 4
1.3 PHP编程初步 5
1.4 总结 7
第2章 PHP的安装和配置 8
2.1 在Windows 2000上安装 PHP 8
2.1.1 验证PHP安装 12
2.1.2 为PHP配置 IIS 4.0 13
2.2 在Linux平台上安装PHP 17
2.2.1 使用Red Hat包管理器(RPM)安装PHP 17
2.2.2 从源文件中编译PHP 18
2.3 总结 20
第3章 变量、运算符和常量 21
3.1 变量概述 21
3.1.1 变量命名规则 21
3.1.2 变量声明和初始化 22
3.1.3 变量按引用赋值 23
3.1.4 变量作用域 24
3.1.5 环境变量 24
3.2 运算符 25
3.2.1 算术运算符 25
3.2.2 赋值运算符 28
3.2.3 比较运算符 28
3.2.4 执行运算符('') 31
3.2.5 递增运算符和递减运算符 31
3.2.6 字符串运算符(.) 33
3.2.7 字符串操作 34
3.3 类型变化 35
3.4 类型转换 36
3.5 变量的变量 38
3.6 确定和设置变量类型的函数 38
3.6.1 settype()函数 38
3.6.2 gettype()函数 39
3.7 常量 40
3.7.1 定义常量 40
3.7.2 预定义的常量 41
3.7.3 嵌入HTML的PHP代码的可选语法 42
3.8 总结 42
第4章 控制结构 43
4.1 条件表达式 43
4.1.1 条件语句 44
4.1.2 条件循环 51
4.1.3 嵌套控制结构 59
4.2 总结 60
第5章 数组 61
5.1 数组简介 61
5.2 初始化数组 64
5.2.1 使用数组标识符 64
5.2.2 使用array()函数 64
5.3 使用数组 65
5.3.1 修改数组大小 65
5.3.2 数组循环操作 68
5.3.3 在数组中查找元素 69
5.3.4 倒转数组 70
5.3.5 数组排序以及随机化数组 70
5.4 总结 73
第6章 函数 74
6.1 函数概述 74
6.2 向函数传递参数 77
6.2.1 传递默认的参数值 77
6.2.2 按值传递参数 78
6.2.3 按引用传递参数 79
6.3 从函数返回值 80
6.4 理解函数内部变量的作用域 81
6.4.1 global语句 82
6.4.2 静态语句 82
6.5 变量函数和变量参数函数 84
6.6 总结 85
第7章 理解类 87
7.1 类 87
7.1.1 创建类 88
7.1.2 实例化类——使用对象 89
7.1.3 不用对象访问类方法 90
7.1.4 $this变量 90
7.2 构造函数 92
7.3 扩展类——类的继承 93
7.3.1 重载方法 95
7.3.2 间接访问父类中的方法 96
7.4 总结 98
第8章 项目个案研究——创建在线购物站点 99
8.1 Bukbuz Inc.概述 99
8.2 Bukbuz Inc.网站 99
8.3 项目生命周期 100
8.3.1 需求分析 101
8.3.2 总体设计 102
8.3.3 详细设计 106
8.3.4 编码 106
8.3.5 集成和测试 106
8.3.6 用户验收测试 106
8.4 Bukbuz Ino.网站数据库设计 106
8.4.1 customerinfo表 107
8.4.2 catgory表 107
8.4.3 products表 108
8.4.4 orders表 108
8.4.5 products_ordered表 108
8.4.6 neworder表 109
8.4.7 Login表 109
8.5 Bukbuz Inc.网站主页的代码 109
8.6 总结 115
第2部分 专业项目1 117
项目1 为在线购物站点创建用户注册表单 117
第9章 HTML基础 118
9.1 HTML元素 120
9.2 格式化HTML页面的元素 123
9.2.1 题头标记 124
9.2.2 换行标记 125
9.2.3 段标记 126
9.2.4 注释标记 128
9.2.5 字体标记 128
9.3 用HTML创建表单 131
9.3.1 表单的运行 131
9.3.2 表单元素 132
9.3.3 输入元素 133
9.3.4 选择元素 135
9.3.5 表元素 137
9.4 创建HTML表单 141
9.5 总结 146
第10章 PHP中的表单解析 147
10.1 用PHP解析HTML传送的值 147
10.1.1 解析文本框表单元素 147
10.1.2 解析单选按钮表单控件 148
10.1.3 解析复选框表单控件 148
10.1.4 从多项选择列表中解析值 149
10.2 表单有效性验证 149
10.2.1 验证Name文本框的值 149
10.2.2 验证Address文本字段的值 150
10.2.3 验证电子邮件地址 151
10.2.4 验证口令 152
10.2.5 验证生日字段 153
10.3 打印确认页面 154
10.4 打印隐藏字段 154
10.5 将理论付诸于实践 156
10.6 总结 165
第3部分 专业项目2 166
项目2 在文件中存储和检索信息 166
第11章 处理文件 167
11.1 使用文件 167
11.1.1 检查文件是否存在 168
11.1.2 打开文件 168
11.1.3 关闭文件 170
11.1.4 读取文件 170
11.1.5 写文件 176
11.1.6 接收输入时格式化数据 177
11.1.7 pack()和unpack()函数 177
11.2 将理论付诸实践 179
11.2.1 output.php 179
11.2.2 reader.php 185
11.3 总结 192
第4部分 专业项目3 193
项目3 PHP与MySQL的结合 193
第12章 处理数据存储 194
12.1 数据库概念入门 194
12.1.1 表 195
12.1.2 字段 195
12.1.3 记录 197
12.1.4 使用数据库的优势 197
12.2 数据库管理系统 198
12.3 关系数据库管理系统 199
12.4 数据库规范化 199
12.4.1 规范化的原因 200
12.4.2 规范化形式 200
12.4.3 反向规范化 202
12.5 PHP对各种数据库的支持 203
12.6 Web数据库结构 203
12.7 MySQL数据库编程 205
12.7.1 使用mysqladmin命令 205
12.7.2 使用MySQL监视程序 206
12.7.3 创建数据库 207
12.7.4 创建表 208
12.7.5 在数据库中查看表 211
12.7.6 查看表的结构 211
12.7.7 在表中输入数据 212
12.7.8 查看表中的数据 213
12.7.9 修改表中的数据 215
12.7.10 从表中删除数据 216
12.7.11 修改表的结构 217
12.8 总结 217
第13章 PHP与SQL数据库(MySQL)的综合使用 218
13.1 使用MySQL 218
13.1.1 连接数据库 219
13.1.2 在MySQL中创建数据库 220
13.1.3 选择数据库 221
13.1.4 在数据库中创建表 222
13.1.5 在表中插入记录 224
13.1.6 从表中检索信息 228
13.1.7 更新表中的信息 232
13.2 同时使用多个数据库 237
13.3 重要的PHP-MySQL函数 239
13.4 MySQL中的错误处理 239
13.4.1 PHP中的错误类型 240
13.4.2 创建自定义的错误处理程序 242
13.5 总结 249
第5部分 专业项目4 250
项目4 创建产品目录和购物车并发送电子邮件 250
第14章 创建产品目录 251
14.1 产品目录概述 251
14.1.1 产品目录结构 251
14.1.2 Bukbuz Inc.产品目录的组件 252
14.1.3 用户注册 257
14.1.4 单击Product Catalog页面的Add to Cart链接时的用户注册过程 274
14.2 Bukbuz Inc产品目录的工作方式 274
14.3 产品目录的搜索功能 277
14.3.1 searchvisitor.php文件 277
14.3.2 searchcustomer.php文件 284
14.3.3 产品目录上的其他页面链接 288
14.4 Bukbuz Inc.产品目录的管理组件 293
14.4.1 添加产品 295
14.4.2 删除产品 300
14.4.3 产品浏览器 306
14.4.4 添加类别 308
14.4.5 删除类别 310
14.4.6 类别浏览器 314
14.4.7 添加用户 316
14.4.8 删除用户 316
14.4.9 待处理订单 320
14.5 总结 324
第15章 购物车 326
15.1 购物车概述 326
15.2 购物车结构 326
15.3 购物车的工作方式 327
15.3.1 向购物车中添加产品 327
15.3.2 查看购物车 329
15.3.3 从购物车中删除产品 334
15.4 总结 334
第16章 发送电子邮件 335
16.1 Bukbuz Inc.的Feedback表单 335
16.1.1 mail()函数 341
16.1.2 feedback.php文件 342
16.2 总结 344
第6部分 专业项目5 346
项目5 用户身份验证与跟踪 346
第17章 用户身份验证脚本 347
17.1 用户身份验证基础 347
17.1.1 基于口令的身份验证方法 348
17.1.2 基于口令的身份验证:优势和不足 352
17.1.3 存储口令 352
17.2 数据加密和哈希 354
17.2.1 数据加密 354
17.2.2 哈希法 358
17.3 创建PHP身份验证脚本 361
17.4 总结 374
第18章 会话跟踪 375
18.1 会话概述 375
18.1.1 会话变量 376
18.1.2 会话初始化 379
18.1.3 分配会话名 381
18.1.4 删除会话 383
18.1.5 加密/解密会话数据 384
18.2 跟踪会话 384
18.3 总结 392
第7部分 专业项目6 393
项目6 超越实验室 393
第19章 PHP中的图形 394
19.1 Web中的图形 394
19.1.1 使用扫描图像 394
19.1.2 创建新图像 395
19.1.3 Web图形的格式 396
19.2 在PHP中创建图像 397
19.2.1 安装需要的图形库 397
19.2.2 提供头信息 398
19.2.3 创建图像的步骤 398
19.2.4 声明图像的坐标 399
19.2.5 用基本函数来创建图像 399
19.2.6 使用像素 401
19.2.7 设定图像的颜色 403
19.2.8 绘制文本 405
19.2.9 绘制基本对象 410
19.2.10 绘制高级对象 414
19.2.11 在其他现有图像上绘制图像 416
19.2.12 在PHP中动态创建图表 418
19.2.13 其他有用的函数 423
19.3 总结 424
第20章 PHP中的输入验证程序 426
20.1 验证基础 426
20.1.1 对验证的需求 426
20.1.2 应该验证什么 427
20.2 在HTML网页中进行验证 428
20.3 在PHP中实施验证 428
20.3.1 验证字符串信息 428
20.3.2 验证日期信息 433
20.3.3 验证整数信息 433
20.4 验证用户输入的函数 433
20.5 验证电子邮件地址 436
20.5.1 简单验证 436
20.5.2 DNS验证 442
20.5.3 SMTP验证或IP地址验证 445
20.6 总结 448
第21章 理解 CVS 449
21.1 CVS概述 449
21.2 CVS储存库 450
21.2.1 访问CVS储存库 451
21.2.2 CVS储存库结构 452
21.2.3 通过CVS得到 PHP的源代码树 453
21.2.4 创建CVS储存库 454
21.3 CVS中的环境变量 454
21.4 CVS命令选项 456
21.4.1 CVS命令的结构 456
21.4.2 CVS命令选项的类型 457
21.5 总结 458
第22章 PEAR 459
22.1 PEAR简介 459
22.2 PEAN的编程标准 459
22.2.1 代码缩进 460
22.2.2 使用控制结构 460
22.2.3 命令函数和方法 461
22.2.4 命名常量 461
22.2.5 命名全局变量 461
22.2.6 使用PEAR函数 461
22.2.7 定义函数 462
22.2.8 处理注释 462
22.2.9 包括类文件 463
22.2.10 使用PHP标记 463
22.2.11 连接头信息 463
22.3 PEAR和CVS 464
22.4 为PEAR提供代码 465
22.5 PEAR修改的需求 466
22.6 PEAR中的帮助 467
22.7 总结 467
第23章 PHP-Nuke 468
23.1 什么是PHP-Nuke 468
23.2 控制和管理网站 472
23.2.1 控制网站 472
23.2.2 管理网站 476
23.3 总结 488
第24章 Cookies 490
24.1 什么是Cookies 490
24.1.1 cookie的工作方式 492
24.1.2 cookie的作用域 493
24.1.3 cookies的使用限制 495
24.2 Cookies在PHP中的实现 495
24.2.1 创建cookies 495
24.2.2 访问cookie 499
24.2.3 多值cookie 503
24.2.4 删除cookie 507
24.3 Cookies有害吗 508
24.4 总结 509
第8部分 附录 511
附录A 使用目录 511
A.1 普通目录操作 511
A.1.1 读取文件 511
A.1.2 复制文件 513
A.1.3 移动文件 514
A.1.4 删除文件 516
A.1.5 同一目录处理多个文件 517
A.1.6 删除目录 520
A.1.7 其他目录函数 522
附录B Mcrypt库 525
B.1 安装Mcrypt库 525
B.2 Mcrypt模式 526
附录C PHP中使用PostgreSQL 528
C.1 PostgreSQL概述 528
C.2 PostgrSQL和MySQL的比较 529
C.3 PostgreSQL的体系结构 530
C.4 PostgrSQL的安装和配置 531
C.5 PostgreSQL的概念 534
C.6 PostgreSQL数据库的编程 535
C.6.1 使用mysqladmin命令 535
C.6.2 PostgreSQL中交互式监视器的使用 536
C.6.3 创建数据库 537
C.6.4 创建表 538
C.6.5 查看数据库中的表 540
C.6.6 查看表的结构 540
C.6.7 表中数据的输入 541
C.6.8 查看表里的数据 541
C.6.9 修改表的数据 543
C.6.10 删除表的数据 543
C.6.11 修改表结构 544
附录D 基本HTML标记概览 545
附录E PHP函数概览 548
附录F 网站设计最佳实践 558
F.1 设计的最佳实践 558
F.2 样式指南 558
F.3 选择外部链接 559
F.4 让搜索引擎找到你的网站 559
F.5 网页的设计及导航 560
F.6 广泛的可访问性 560
F.7 备份计划 561
F.8 跟踪使用情况 561
F.9 安全 561
F.10 广告 562
F.11 商标 562