第一篇 基础篇 2
第1章 黄金组合Apache+MySQL+PHP简介 2
1.1 PHP开发语言 2
目录 2
1.2 Apache服务器 3
1.3 MySQL数据库 4
1.4 Apache+MySQL+PHP环境配置 4
1.4.1 Apache的安装配置 4
1.4.2 PHP的安装配置 11
1.4.3 MySQL的安装配置 14
2.1.1 PHP文件格式 25
实例目录 25
实例2-1 Hello World程序 25
2.1 PHP语言基础 25
第2章 PHP语言轻松入门 25
实例2-2 <?php.........?>的应用 26
实例2-3 <script language=“php”></script>的应用 26
2.1.2 PHP标记 26
实例2-4 <%...%>的应用 27
实例2-5 <?...?>的应用 27
实例2-6 PHP控制HTML输出 27
2.1.3 PHP文件的访问形式 28
实例2-7 HTML文件的访问方法 28
2.1.4 PHP程序注释 29
实例2-8 PHP文件的访问方法 29
实例2-9 PHP程序注释 30
2.1.5 PHP语法概述 30
2.2 PHP的变量 31
2.2.2 PHP的数据类型 31
2.2.1 PHP的变量命名 31
实例2-10 PHP关键字作为变量 32
实例2-11 为整型变量赋值 33
实例2-12 为浮点数赋值 34
实例2-13 单引号方式给字符串赋值 35
实例2-14 双引号方式给字符串赋值 35
实例2-15 Heredoc方式给字符串赋值 36
实例2-16 字符串中包含变量 37
实例2-17 判断变量的类型 38
实例2-18 IS函数判断变量类型 39
实例2-19 检测变量是否设置 40
实例2-20 布尔转换 42
2.2.3 数据类型转换 42
实例2-21 字符串和数值之间的转换 43
2.2.4 PHP中的预定义变量 45
实例2-22 使用“$”访问预定义变量 45
实例2-23 通过$HTTP_*_VARS访问预定义变量 46
2.2.5 变量的引用 47
实例2-25 变量的引用 47
实例2-24 使用超全局访问预定义变量 47
2.2.6 变量的变量 48
实例2-26 变量的变量 48
2.2.7 常量 49
实例2-27 常量的定义 49
实例2-28 输出预定义常量 50
实例2-29 算术运算符 51
2.3 PHP的运算符 51
2.3.1 算术运算符 51
实例2-30 赋值运算符 52
2.3.2 赋值运算符 52
2.3.3 位逻辑运算符 53
2.3.4 三元运算符 54
实例2-31 位运算符 54
2.3.5 比较运算符 54
实例2-33 字符串运算符 55
2.3.6 字符串运算符 55
实例2-32 比较运算符 55
2.3.7 递增和递减运算符 56
2.3.8 逻辑运算符 57
实例2-34 递增和递减运算符 57
2.4 表达式 58
2.3.9 运算符优先级 58
2.5.1 条件语句 59
2.5 控制语句 59
实例2-35 IF语句的应用 61
实例2-36 switch语句的应用 63
2.5.2 循环语句 64
实例2-37 for循环语句的应用 64
实例2-38 while循环语句的应用 66
2.5.3 break和continue语句 67
实例2-39 break语句的应用 67
实例2-40 continue语句的应用 68
2.6 数组 69
2.6.1 数组类型 69
实例2-41 多维数组的应用 70
2.6.2 数组初始化 71
2.6.3 数组的应用 72
实例2-42 创建数组并添加删除元素 73
实例2-43 foreach语句的使用 74
实例2-44 each函数语句的使用 76
实例2-45 list语句的使用 76
实例2-46 使用array_slice函数取出部分数组元素 77
实例2-47 使用array_shift函数删除数组第一个元素 78
实例2-49 将元素插入到数组中 79
实例2-48 使用array_pop函数删除数组最后一个元素 79
实例2-50 使用array_splice函数替换数组元素 80
实例2-51 浏览数组元素 82
实例2-52 数组排序 83
实例2-53 对数组重新排序 85
实例2-54 Range函数的应用 86
2.7 函数 87
实例2-55 统计数组元素个数 87
实例2-56 echo语句的应用 88
2.7.1 内置函数 88
实例2-57 print语句的应用 90
实例2-58 简单的include应用 91
实例2-59 函数内部包含文件 91
实例2-60 Return的应用 93
实例2-61 无参数函数应用 95
2.7.2 自定义函数 95
实例2-62 值传递参数 96
实例2-63 修改变量的值 96
实例2-64 引用传递参数 97
实例2-65 函数的默认值 98
2.7.3 变量函数 99
实例2-66 函数的返回值 99
2.7.4 函数变量的作用域 100
实例2-67 变量函数的应用 100
实例2-68 使用全局变量 101
实例2-69 使用$GLOBALS数组 102
2.8.1 获取日期和时间 103
2.8 日期和时间处理 103
实例2-70 date函数的应用 104
2.8.2 使用getdate函数获得日期信息 105
2.8.3 使用mktime函数取得一个日期的时间戳 106
第3章 字符串和正则表达式 107
3.1.1 去除多余空格 107
实例3-1 trim函数的应用 107
3.1 格式化字符串 107
实例3-2 Itrim函数的应用 108
3.1.2 格式化字符串显示 108
实例3-4 将字符转换成大写 109
实例3-5 将字符串首字符转换成大写 109
实例3-3 将字符转换成小写 109
实例3-6 将字符串中每个单词的首字符转换成大写 110
实例3-7 n12br函数的应用 111
实例3-8 把特殊的HTML字符转换成普通文本 112
实例3-9 htmlentities函数的应用 112
实例3-10 去掉所有的HTML和PHP标记 113
实例3-11 转义数据库中的控制字符 114
实例3-12 去掉被转义的字符串中的斜杠 114
实例3-13 分隔字符串 115
3.2 字符串的连接和分割 115
实例3-14 连接字符串 116
实例3-15 一次从字符串中取出一个单词 116
实例3-16 获取指定子字符串 117
实例3-18 不区分大小写比较字符串 118
实例3-17 比较字符串的大小 118
3.3 字符串的比较 118
3.4 字符串的查找和替换 119
3.4.1 查找字符串 119
实例3-19 按照自然排序进行字符串比较 119
实例3-22 查找的最后一个字符串 120
实例3-21 不区分大小写进行字符串查找 120
实例3-20 字符串查找 120
实例3-23 定位子字符串 121
3.4.2 定位字符串 121
实例3-24 返回最后一个被查询子字符串的位置 122
实例3-25 字符串替换 123
3.4.3 字符串替换 123
实例3-26 在子字符串中替换 124
3.5 正则表达式 125
3.5.1 正则表达式基础 126
3.5.2 匹配正则表达式模式 126
实例3-27 在文本中搜索“PHP”字符串 127
实例3-28 在文本中搜索“Web”字符串 127
3.5.3 锚定一个匹配 128
实例3-29 从URL中取出域名 128
实例3-30 插入符“^”的应用 128
实例3-31 美元符“S”的应用 128
实例3-32 美元符“S”和插入符“^”的联合使用 129
3.5.4 匹配单个字符 129
实例3-33 元字符“.”的应用 129
3.5.5 匹配字符类 130
实例3-34 匹配字符类 130
3.5.8 分组模式 131
实例3-35 替换匹配 131
3.5.6 替换匹配 131
3.5.7 不区分大小写的模式 131
3.5.10 限定符 132
3.5.9 预定义字符和字符类 132
3.5.12 其他常用正则函数 133
3.5.11 逆向引用 133
实例3-36 数组替换 134
实例3-37 将HTML替换成文本 134
实例3-38 将字符串分割成字符 135
实例3-39 将字符串分割成匹配项和偏移量 136
第4章 PHP与HTML表单 137
4.1 HTML表单 137
实例4-1 通过GET方法提交数据 140
4.1.1 GET提交方法 140
实例4-2 通过POST方法提交数据 142
4.1.2 POST提交方法 142
4.2 获取提交的数据 143
4.2.3 复选框 144
4.2.2 单选按钮 144
4.2.1 文本框 144
实例4-3 获取复选框提交的数据 145
实例4-4 安全获取复选框提交的数据 146
实例4-5 快速获取复选框提交的数据 147
实例4-6 获取列表框提交的数据 148
4.2.4 列表框 148
实例4-7 获取列表框提交的多个选项 149
4.2.5 隐藏字段 150
实例4-8 获取隐藏字段值 150
实例4-9 表单处理的综合应用 151
4.3 常用表单数据验证 152
4.3.1 姓名验证 152
实例4-10 验证姓名 152
4.3.2 电子邮件验证 153
实例4-11 电子邮件验证 153
4.3.3 密码字段验证 154
实例4-12 密码验证 154
4.3.4 生日字段验证 155
实例4-13 生日验证 155
4.4.1 urlencode函数 156
实例4-14 使用urlencode对URL进行编码 156
4.4 URL编码解码函数 156
4.4.2 urldecode函数 157
实例4-15 使用urldecode对URL进行解码 157
实例5-1 检测文件是否存在 160
5.1 检测文件或者目录是否存在 160
第二篇 高级技术篇 160
第5章 PHP中的文件处理技术 160
5.2 打开文件 161
实例5-2 创建文件 163
5.3 写入或者追加数据 163
5.3.1 写入数据 163
实例5-3 将数据写入文件 164
5.3.2 追加数据 165
实例5-5 追加数据 165
实例5-4 写入多行数据 165
5.4 关闭文件 166
5.5 读取数据 167
5.5.1 读取一行数据 167
实例5-6 一次读入一行数据 167
实例5-7 读取数据并过滤HTML和PHP标记 168
实例5-8 使用fgetcsv函数解析CVS文件 169
5.5.2 读取整个文件 170
实例5-9 读取整个文件 170
实例5-11 向浏览器发送图像 171
实例5-10 读取当前指针后的全部文件内容 171
实例5-12 将整个文件读入到数组 172
实例5-13 将整个文件读入到字符串 173
实例5-14 读入单个字符 173
5.5.3 读取一个字符 173
实例5-15 读入指定长度的字符串 174
5.5.4 读取任意长度函数 174
5.5.5 文件定位 175
实例5-16 将文件指针指向文件头 175
实例5-17 设定文件指针位置 176
5.6 其他常用文件处理函数 177
实例5-18 获取文件指针位置 177
实例5-19 文件复制 179
实例5-20 获取磁盘剩余空间 179
实例5-21 获取磁盘总空间 180
实例5-22 获取文件的上次访问时间 180
实例5-23 获取文件的最近修改时间 181
第6章 PHP与面向对象程序设计 184
6.1 面向对象编程知识点回顾 184
6.1.1 对象 184
6.1.2 类 185
6.1.3 继承 185
6.1.4 多态性 186
6.2 在PHP中使用类 186
6.2.1 创建类 186
6.2.2 构造函数 188
6.2.4 类的实例化 188
6.2.3 析构函数 188
实例6-1 创建一个简单的类 189
6.2.5 使用类的属性 189
6.2.6 类的访问控制 190
6.2.7 类方法的调用 191
实例6-2 创建一个完整的类 192
6.2.8 类的应用实例 192
6.3 面向对象编程的高级技术 193
6.3.1 继承的实现 193
实例6-3 类的继承 193
6.3.2 多态的实现 194
实例6-4 类的多态 195
6.3.3 作用域分辨运算符 196
实例6-5 “∷”运算符 196
6.3.4 parent关键字 197
实例6-6 使用parent关键字 197
6.3.5 final关键字 198
实例6-7 使用static关键字 199
6.3.6 static关键字 199
7.1.1 语法错误 201
7.1 错误类型 201
第7章 错误调试与异常处理 201
7.1.2 运行错误 205
7.1.3 逻辑错误 207
7.1.4 设置错误报告级别 208
7.2.1 调试过程 209
7.2 错误调试 209
7.2.2 常用的调试手段 210
8.1.1 登录到数据库 211
8.1 MySQL应用基础 211
第8章 MySQL数据库 211
8.1.2 修改用户密码 212
8.1.3 MySQL的权限管理 213
8.1.4 创建新用户 214
8.1.5 创建数据库 216
8.1.6 创建数据库表 217
8.1.7 数据类型 221
8.1.8 查看数据库 225
8.1.10 备份数据库 228
8.1.9 创建索引 228
8.2.1 插入数据 230
8.2 使用MySQL数据库 230
8.1.11 恢复数据库 230
8.2.2 查询数据 233
8.2.3 编辑记录 242
8.2.4 删除记录 244
8.3 MySQL的高级应用 246
8.3.1 事务 246
8.3.2 存储过程 248
8.4 使用MySQL Administrator管理数据库 252
8.5 使用phpMyAdmin 257
第9章 PHP的数据库编程 258
9.1 通过PHP操作MySQL数据库 258
9.1.1 PHP连接MySQL 258
实例9-1 连接数据库 259
9.1.2 选择数据库 260
9.1.3 创建查询 260
实例9-2 选择数据库 260
实例9-3 查询数据库表 261
实例9-4 检索查询记录 262
9.1.4 显示查询结果 262
实例9-5 获取表的全部字段 263
实例9-6 通过mysql_fetcn_array函数获取记录 264
实例9-7 通过字段别名获取记录 265
实例9-8 通过mysql_fetch_assoc函数获取记录 266
实例9-9 获取被查询的记录数目 267
实例9-10 通过Count语句获取被查询的记录数目 268
9.1.5 插入新数据 268
实例9-11 向表中插入数据 268
实例9-12 编辑数据 269
9.1.6 编辑数据 269
9.1.7 删除数据 270
实例9-13 删除记录 270
9.1.8 获取被影响的记录行数 271
实例9-14 创建数据库 272
9.1.9 创建数据库 272
9.1.10 创建数据库表 272
实例9-15 创建数据库表 273
实例9-16 事务处理 273
9.1.11 事务处理 273
实例9-17 调用存储过程 275
9.1.12 存储过程 275
9.1.13 其他重要函数 276
实例9-18 在记录中移动指针 277
实例9-19 列出所有数据库名称 278
实例9-20 获取字段名称 278
实例9-21 获取字段长度 279
实例9-22 获取字段类型 279
实例9-23 使用mysql_list_fields函数获取表格字段信息 280
实例9-24 获取mysql服务器的各种信息 281
实例9-25 采用面向过程的方式使用mysqli函数库 282
9.2 mysqli函数库应用 282
实例9-26 采用面向对象的方式使用mysqli函数库 284
实例9-27 连接SQL Server数据库 286
9.3 通过PHP连接SQL Server数据库 286
实例9-28 SQL Server数据库编程 287
实例10-1 测试GD2函数库是否安装成功 291
第10章 PHP中的图像处理技术 291
10.1 GD2函数库中的常用函数 292
10.2 利用GD2函数库进行图像处理 297
实例10-2 创建一幅图像 297
10.2.1 创建图像 297
实例10-3 将图像保存到文件并显示 299
10.2.2 图像处理的各种实例 299
实例10-4 直接在<img>标记中包含PHP文件 300
实例10-5 为图像着色 301
实例10-7 根据字符串流创建图像 302
实例10-6 获取像素颜色 302
实例10-8 画一个3D效果的饼图 303
实例10-9 制作定义按钮 304
实例10-10 设置线型 306
实例10-11 显示一个温度计 307
实例10-12 将文字添加到图片中 309
实例10-13 改变图像大小 311
实例10-14 绘制销售报表 312
实例10-15 显示中文 314
第11章 会话控制 316
11.1 Cookie的应用 316
11.1.1 Cookie的概念 316
11.1.2 PHP中的Cookie编程 317
实例11-1 setcookie函数的应用 318
实例11-2 删除cookie 319
实例11-3 创建cookie数组 320
实例11-4 通过cookie跟踪用户访问次数 322
11.2 实现会话控制 323
11.2.1 会话的基本方式 323
11.2.2 创建会话 323
实例11-5 session应用实例 324
11.2.3 会话应用实例 324
11.2.4 会话控制的配置 326
第三篇 案例实战篇 330
第12章 常用模块编程 330
12.1 分页显示模块 330
12.2 在线数据编辑模块 334
12.3 文件上载模块 342
12.4 聊天室模块 346
12.4.1 用户登录界面(index.php) 346
12.4.2 登录成功界面(login.php) 347
12.4.3 聊天室的主界面(frames.php) 349
12.4.4 显示聊天内容界面(outputchat.php) 350
12.4.5 显示在线用户列表界面(outputusers.php) 351
12.4.6 输入聊天内容界面(input.php) 351
13.1 系统整体设计 353
13.2 数据库安装配置 353
第13章 注册登录系统 353
13.3 系统的实现 355
13.3.1 系统注册模块 355
13.3.2 账号激活模块 359
13.3.3 系统登录模块 361
13.3.4 取回密码模块 365
13.3.5 修改密码模块 366
13.3.6 注销登录模块 368
13.4 验证码的实现 368
13.4.1 将验证码发送的客户端(index.php) 369
13.4.2 verificate.php 371
13.4.3 doimg.php 371
14.1 基于数据库的投票系统 373
14.1.1 系统整体设计 373
第14章 投票系统 373
14.1.2 数据库设计 374
14.1.3 系统实现 374
14.2.1 系统整体设计 387
14.2.2 数据的存储形式 387
14.2 基于文件的投票系统 387
14.2.3 系统实现 388
第15章 计数器系统 396
15.1 基于文本的图形显示计数器 396
15.2 面向对象的图形显示计数器 397
15.2.1 counter.php 398
15.2.2 counter.inc 398
15.2.3 databases.inc 401
15.2.4 实例运行演示 401
15.3.1 配置数据库 402
15.3.2 显示日历及统计结果(counter.php) 402
15.3 综合计数器 402
15.3.3 连接数据库(dbconnection.php) 407
15.3.4 导航文件(top.php) 408
15.3.5 实例运行演示 409
16.2 系统实现 410
16.2.1 浏览目录和文件的基本信息 410
16.1 系统整体设计 410
第16章 文件管理系统 410
16.2.2 删除文件 417
16.2.3 编辑文件 419
16.2.5 通过浏览器浏览文件 420
16.2.4 保存文件 420
16.2.6 创建目录 421
16.2.7 上载文件 422
16.2.8 删除目录 422
16.2.9 设置权限 422
第17章 在线图片管理系统 424
17.1 系统整体设计 424
17.2 创建数据库 424
17.3 系统实现 425
17.3.1 实现导航页面 425
17.3.2 设置系统参数 426
17.3.3 添加图片 427
17.3.4 查看图片 429
17.3.5 编辑图片 436
17.3.6 删除图片 437
第18章 功能完善的BBS系统 439
18.1 系统整体设计 439
18.2.1 数据库表设计 440
18.2 数据库设计 440
18.2.2 数据库安装配置 442
18.3 系统实现 447
18.3.1 系统注册/登录 447
18.3.2 发表文章 452
18.3.3 查看文章列表 455
18.3.4 查看文章 458
18.3.5 回复文章 464
18.3.6 查看个人信息 465
18.3.7 实现管理员功能 465
18.3.8 导航文件(index.php) 472
第19章 电子邮件收发系统 473
19.1 Mail函数的简单应用 473
19.2 系统整体设计 475
19.3 系统实现 476
19.3.1 系统设置文件config.php 477
19.3.2 POP3系统登录 478
19.3.3 收取邮件和附件 481
19.3.4 阅读邮件和保存附件 487
19.3.5 发送或者回复邮件 489
19.3.6 创建文件夹 503
19.3.7 通讯录管理 503
19.3.8 系统设置 503
第20章 在线书店系统 504
20.1 数据库设计 504
20.2 在线书店的客户端功能 506
20.2.1 通用文件(Common.php) 507
20.2.2 数据库连接类(db_mysql.inc) 510
20.2.3 主界面文件(Default.php) 515
20.2.4 会员登录文件(Login.php) 517
20.2.5 显示图书详细信息(BookDetail.php) 522
20.2.6 购物篮管理(ShoppingCart.php) 522
20.2.7 修改购物信息(ShoppingCartRecord.php) 523
20.2.8 图书查询(Books.php) 523
20.3 在线书店的管理功能 524
20.3.1 会员管理 524
20.3.2 订单管理 525
20.3.3 图书管理 525
20.3.4 分类管理 526