欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP5与MySQL5 Web开发技术详解 目录

程序员文章站 2024-02-02 10:00:40
...
第一篇 PHP 5基础知识

第1章 PHP 5概述 3

1.1 什么是PHP 3

1.1.1 PHP的历史 3

1.1.2 PHP的优点 4

1.1.3 PHP的精神 5

1.1.4 PHP与Web 2.0 6

1.2 PHP 5的新特性 6

1.2.1 新的面向对象模式 7

1.2.2 新的面向对象特性 7

1.2.3 其他新特性 10

1.3 PHP 5的扩展库 11

1.3.1 XML扩展 12

1.3.2 SPL 13

1.3.3 MySQLi扩展 13

1.3.4 PDO数据库抽象层 13

1.3.5 JSON扩展 13

1.4 PHP 5外部扩展库 14

1.4.1 PECL扩展 14

1.4.2 PEAR扩展 14

1.5 PHP 5的其他更新 14

1.5.1 Zend引擎2.0 14

1.5.2 新的内存管理器 14

1.5.3 Zend Optimizer与Zend Core 14

1.6 PHP与Web服务器 15

1.6.1 Apache 15

1.6.2 Microsoft IIS 15

1.6.3 其他Web服务器 15

1.7 PHP 5安装与配置 15

1.7.1 Win32平台下Apache环境安装 16

1.7.2 Win32平台下的IIS环境安装 36

1.7.3 Win32平台下使用集成化安装包 39

1.7.4 FreeBSD平台 40

1.7.5 Linux平台 47

1.8 PHP配置与初步优化 49

1.9 其他注意的问题 49

1.10 PHP开发工具 50

1.11 小结 53

第2章 PHP 5开发基础 54

2.1 第一个PHP脚本 54

2.2 变量与表达式 55

2.2.1 打印与输出变量 55

2.2.2 显示数组与对象 57

2.2.3 变量的数据精度 58

2.2.4 变量的变量 59

2.2.5 超级全局变量数组 59

2.2.6 变量的作用域 64

2.3 变量类型 64

2.3.1 布尔型变量 64

2.3.2 NULL数据类型 65

2.3.3 Resource 65

2.3.4 静态变量 66

2.4 变量操作符 66

2.4.1 算术运算符 67

2.4.2 赋值操作符 67

2.4.3 字符串操作 68

2.4.4 前置与后置的加减运算 68

2.4.5 引用操作符 69

2.4.6 三元操作符 69

2.4.7 比较运算符 69

2.4.8 布尔运算符 70

2.4.9 位操作符 70

2.4.10 其他操作符 70

2.4.11 变量与脚本处理 71

2.4.12 数据转换 72

2.5 常量 74

2.5.1 常量的定义 75

2.5.2 PHP魔术常量 75

2.6 PHP的控制结构 76

2.6.1 分支语句 76

2.6.2 循环结构 79

2.7 包含控制 83

2.7.1 include与require 83

2.7.2 include_once与require_once 84

2.7.3 eval() 84

2.8 函数 85

2.8.1 PHP内部函数 85

2.8.2 中止脚本的执行:exit()与die() 85

2.8.3 用户自定义函数 86

2.8.4 函数的命名规则 86

2.8.5 函数的作用域 87

2.8.6 从函数中返回值 87

2.8.7 返回引用的值 88

2.8.8 函数参数的传递 89

2.8.9 函数里的静态变量 91

2.8.10 函数的递归 92

2.8.11 函数命名重复的解决方法 92

2.8.12 创建自己的函数库 92

2.9 字符串操作 92

2.9.1 单引号与双引号的区别 92

2.9.2 手动转义字符串数据 93

2.9.3 自动转义字符串数据 93

2.9.4 字符串序列化 94

2.9.5 字符串整理 96

2.9.6 格式化字符串 96

2.9.7 字符串分割 96

2.9.8 字符串截取 97

2.9.9 计算字符串长度 98

2.9.10 字符串单词统计 98

2.9.11 字符串查找 99

2.9.12 字符串处理 101

2.10 日期与时间 106

2.10.1 时间戳 107

2.10.2 PHP日期函数 107

2.10.3 PHP时间函数 109

2.11 网络相关处理 112

2.11.1 header()函数 112

2.11.2 处理URL字符串 114

2.11.3 获得用户来源 116

2.11.4 获得PHP环境信息 117

2.12 小结 117

第3章 正则表达式 118

3.1 正则表达式简介 118

3.2 正则表达式功能 118

3.3 POSIX正则表达式 119

3.3.1 ^和$定位符 119

3.3.2 POSIX量词 119

3.3.3 方括号表达式 120

3.3.4 预定义字符簇 121

3.3.5 POSIX正则表达式函数 121

3.4 PCRE正则表达式函数 123

3.4.1 PCRE字符类 123

3.4.2 PCRE匹配 123

3.4.3 PCRE正则表达式函数 124

3.5 正则表达式VS函数 130

3.6 创建BBCode 130

3.7 小结 131

第4章 PHP数组 132

4.1 什么是数组 132

4.2 数组的类型 133

4.2.1 数字索引数组 133

4.2.2 关联数组 133

4.3 数组的构造 134

4.3.1 一维数组 134

4.3.2 二维数组与多维数组 135

4.3.3 多维数组 140

4.4 快速创建数组 142

4.4.1 使用range()函数 142

4.4.2 为数组追加数据 143

4.4.3 修改数组内容 143

4.5 访问和处理数组内容 143

4.5.1 数字索引数组排序 143

4.5.2 关联数组排序 144

4.5.3 数组随机抽取shuffle()和

4.5.3 array_rand() 145

4.5.4 统计数组元素出现的次数 146

4.5.5 数组合并 147

4.5.6 查找数组中键名是否存在 147

4.5.7 查找数组值是否存在 147

4.5.8 计算数组中数值元素的和 148

4.5.9 去除数组中重复的元素值 148

4.5.10 移动数组内部指针 149

4.5.11 取得关联数组的键名 150

4.5.12 访问数组的键名和元素 150

4.5.13 判断数组的类型 150

4.5.14 显示数组内容与结构 151

4.5.15 移除数组中的指定元素 153

4.5.16 在数组顶部插入元素 153

4.5.17 在数组任意位置插入元素 154

4.5.18 数组元素的统计count()和sizeof()

4.5.18 函数 155

4.5.19 数组键名与值的对调array_flip()

4.5.19 函数 155

4.5.20 对数组元素分组统计array_values()

4.5.20 函数 155

4.5.21 删除数组首末尾元素 156

4.5.22 删除数组任意位置的元素 157

4.5.23 将数组内容导出为变量extract()

4.5.23 函数 159

4.6 数组遍历(使用foreach) 159

4.6.1 一维索引数组的遍历 160

4.6.2 一维关联数组的遍历 160

4.7 使用for语句对数组遍历 161

4.8 使用for语句实现树状菜单 162

4.9 数组遍历list()和each() 164

4.10 数组复位reset()函数 164

4.10.1 each() 164

4.10.2 list() 165

4.11 foreach与for语句对数组处理的比较 165

4.12 数组内容过滤 166

4.13 小结 168

第二篇 PHP 5核心应用与规范

第5章 表单——处理用户输入 170

5.1 表单与HTML 170

5.2 设计表单 170

5.3 GET与POST的区别 171

5.4 表单元素 172

5.5 表单的处理方法 174

5.5.1 检查表单提交的来源 174

5.5.2 一个完整表单处理 175

5.6 其他处理表单的方法 177

5.6.1 使用import_request_variables()

5.6.1 函数 177

5.6.2 使用extract()函数 178

5.7 多页面间传递数据 179

5.8 验证表单数据 179

5.8.1 客户端验证 179

5.8.2 服务器端验证 180

5.8.3 避免表单重复提交 180

5.8.4 表单过期的处理 181

5.8.5 判断表单动作的技巧 182

5.9 表单安全 183

5.9.1 处理全局性错误 183

5.9.2 预防SQL注入 186

5.10 开发安全的代码 187

5.10.1 用户输入验证 187

5.10.2 高级数据验证:使用ctype 187

5.10.3 数据过滤 - PECL filter扩展 187

5.10.4 input_get()函数 189

5.10.5 路径检测 189

5.10.6 魔法引用magic_quotes_gpc 190

5.10.7 其他高效的解决方案 190

5.11 小结 191

第6章 PHP加密技术 192

6.1 MD5算法 192

6.2 SHA1算法 192

6.3 Cracklib扩展库 193

6.4 mcrypt扩展与DES算法 193

6.4.1 mcrypt加密扩展 194

6.4.2 mcrypt加密模式 194

6.4.3 mcrypt初始化向量 195

6.4.4 mcrypt加密与解密方法 195

6.5 小结 197

第7章 PHP国际化与本地化 198

7.1 I18N和L10N 198

7.2 字符集与编码 198

7.2.1 ASCII字符集 199

7.2.2 ISO-8859字符集 199

7.2.3 ANSI编码 199

7.2.4 GB2312与GBK编码 199

7.2.5 Unicode字符集 200

7.2.6 正确使用文件编码 201

7.3 gettext函数 201

7.3.1 设置gettext 202

7.3.2 php_gettext函数集 202

7.3.3 编写I18N程序 202

7.3.4 设置gettext po文件 203

7.4 系统本地化函数族 205

7.4.1 setlocale函数 205

7.4.2 货币值本地化 206

7.4.3 使用pc_format_currency( )函数 207

7.5 Iconv函数 208

7.6 mbstring扩展库 209

7.6.1 使用mbstring进行字符串截取 209

7.6.2 检测字符串编码 210

7.6.3 mbstring转换编码 210

7.7 小结 211

第8章 PHP开发规范 212

8.1 代码结构 212

8.1.1 一个脚本服务全部 212

8.1.2 分离显示逻辑 213

8.2 良好的编码风格与样式 213

8.2.1 代码注释 214

8.2.2 代码缩进 214

8.2.3 使用必要的空格 215

8.2.4 SQL编写规范 215

8.2.5 控制结构 216

8.2.6 函数的命名 216

8.2.7 类命名规范 216

8.2.8 减少出错的技巧 217

8.3 小结 217

第9章 PHP 5面向对象开发 218

9.1 面向对象基础 218

9.2 PHP 5 面向对象编程概述 219

9.2.1 类的封装 219

9.2.2 类的继承 219

9.3 对象 219

9.4 创建和使用类 220

9.5 类的结构与定义 220

9.6 成员方法 220

9.7 成员变量与属性 221

9.8 $this关键字 222

9.9 构造方法 222

9.10 析构方法 223

9.11 类的继承与多态 224

9.11.1 类的继承——extends 224

9.11.2 数据的隐藏 226

9.11.3 访问成员变量的约束 226

9.11.4 设置访问成员方法 227

9.11.5 类常量 228

9.11.6 静态成员变量 228

9.11.7 静态成员方法 230

9.12 对象传递 230

9.13 克隆一个对象——clone 230

9.14 对象的比较 231

9.15 对象类型的检测——instanceof 232

9.16 克隆一个成员方法 232

9.17 类的多态性 233

9.18 parent::与self::关键字 234

9.19 抽象方法与抽象类 235

9.20 接口的实现 237

9.21 实现多个接口 238

9.22 final方法 240

9.23 final类 240

9.24 例外与异常处理 241

9.25 方法中声明类的类型 242

9.26 重载与多态 242

9.27 魔术方法 243

9.27.1 __get()与__set()方法 243

9.27.2 __call()方法 244

9.27.3 __sleep()与__wakeup()方法 245

9.27.4 __toString()方法 245

9.27.5 __autoload()方法 246

9.28 类映射API Reflection 247

9.29 小结 253

第10章 PHP会话管理 254

10.1 概述 254

10.2 Cookie管理 254

10.2.1 什么是Cookie 254

10.2.2 Cookie工作原理 255

10.2.3 Cookie应用开发 255

10.2.4 一个通用的Cookie类 259

10.2.5 解决方案 260

10.3 Session管理 261

10.3.1 什么是Session 261

10.3.2 Session配置 262

10.3.3 Session应用 263

10.3.4 Session编码与解码 267

10.3.5 Session中保存数组 267

10.3.6 Session中保存对象 268

10.3.7 Session存取优化 270

10.3.8 多服务器下共享Session 271

10.3.9 Session安全 274

10.4 小结 275

第11章 PHP输入输出缓冲 276

11.1 缓冲技术简介 276

11.2 从缓冲读取内容 277

11.3 使用回调函数 278

11.4 输出回调函数 278

11.5 压缩内容输出 279

11.6 小结 279

第12章 文件系统与字符流 280

12.1 文件与路径 280

12.1.1 分析一个文件的名称与扩展名 280

12.1.2 利用PHP自带函数分析当前

12.1.2 路径 281

12.1.3 显示相对路径的真实路径 281

12.2 文件类型与相关信息 281

12.2.1 filesize()——计算文件的大小 282

12.2.2 取得文件的建立、最后访问与更新

12.2.2 时间 282

12.2.3 fileperms()——文件属性以及

12.2.3 权限 282

12.2.4 取得文件所有者(Owner) 282

12.3 文件的顺序读写 282

12.3.1 文件打开与写入 282

12.3.2 文件输出 284

12.3.3 读取文件内容 285

12.4 文件的非线性读写 285

12.4.1 fseek()函数 286

12.4.2 ftell()函数 286

12.4.3 rewind()函数 286

12.4.4 parse_ini_file()函数 287

12.5 自定义日志记录 288

12.6 目录和磁盘操作 288

12.6.1 disk_free_space()——统计某个

12.6.1 目录的剩余空间 288

12.6.2 disk_total_space()——显示逻辑

12.6.2 磁盘的容量 289

12.6.3 getcwd()/chdir()函数 289

12.6.4 opendir()与readdir()函数 289

12.6.5 实现iterator接口的目录读取 290

12.7 字符流 291

12.7.1 流与封装器的原理 292

12.7.2 PHP 5的预置流包装器 292

12.7.4 流与封装器的应用 293

12.7.5 Filter过滤器及其应用 295

12.7.6 流相关函数 296

12.7.7 创建自己的流过滤器 298

12.8 取得HTTPS加密内容 299

12.9 创建自己的流封装器 300

12.10 小结 301

第三篇 MySQL 5与PHP 5接口

第13章 Web数据库设计 303

13.1 数据库和数据库系统的概念 303

13.2 数据库设计的步骤 304

13.3 表名与字段名规则 305

13.4 小结 306

第14章 MySQL 5数据库 307

14.1 MySQL简介 307

14.2 MySQL 5特性 308

14.2.1 MySQL 5优点 308

14.2.2 MySQL 5缺点 308

14.2.3 MySQL 5性能 308

14.3 MySQL数据库存储类型 309

14.4 MySQL字段类型 310

14.5 MySQL字符集与整理 311

14.5.1 MySQL 5字符集支持的原理 311

14.5.2 修改MySQL字符集方法 311

14.6 MySQL 5应用与管理 312

14.6.1 登录到MySQL 312

14.6.2 修改root管理密码 313

14.6.3 创建数据库 313

14.6.4 改变数据库存储路径 313

14.6.5 MySQL权限系统 314

14.6.6 phpMyAdmin管理工具 317

14.7 MySQL管理工具 324

14.8 小结 324

第15章 MySQL数据库数据操纵 325

15.1 MySQL操作与SQL 325

15.2 检索表中的数据 328

15.2.1 SELECT 语句 328

15.2.2 SELECT的聚集函数 329

15.2.3 结果集排序 329

15.2.4 函数 329

15.2.5 关联查询 329

15.3 高级SQL技术 331

15.3.1 主键 331

15.3.2 子查询 332

15.3.3 联合查询 332

15.4 MySQL事务处理与触发器 332

15.4.1 存储进程 332

15.4.2 触发器(trigger) 333

15.4.3 视图 333

15.4.4 PHP与MySQL字符集 334

15.5 小结 335

第16章 PHP与MySQL数据库接口 336

16.1 PHP5与MySQL连接的mysql扩展 336

16.2 数据库查询 337

16.3 其他显示记录集的函数 339

16.4 PHP 5与MySQL的新接口MySQLi 342

16.5 智能选择MySQL扩展 351

16.6 小结 354

第17章 PHP数据库抽象层 355

17.1 什么是数据库抽象层 355

17.2 常用的数据库抽象层 356

17.2.1 PEAR:DB 356

17.2.2 ADODB 357

17.2.3 Metabase 357

17.2.4 MDB 358

17.2.5 MDB2 358

17.2.6 Creole 359

17.2.7 PDO 359

17.2.8 PHPLib 359

17.3 PDO数据库抽象类 359

17.3.1 PDO简介 359

17.3.2 PDO的安装 360

17.3.3 PDO连接数据库 360

17.3.4 使用PDO查询 361

17.3.5 错误与异常处理 362

17.3.6 取得查询结果 364

17.4 ADODB 368

17.4.1 使用ADODB 368

17.4.2 ADODB安装 369

17.4.3 启动ADODB 369

17.4.4 ADODB的查询方法 370

17.4.5 移动记录集 370

17.4.6 使用ADODB生成HTML 371

17.4.7 使用ADODB进行分页 371

17.4.8 生成下拉选择菜单 371

17.4.9 ADODB开发实例 371

17.5 PHPLib 383

17.5.1 使用PHPLib查询 383

17.5.2 创建GetAll方法 385

17.6 小结 386

第四篇 PHP 5进阶与技巧

第18章 Smarty与模板技术 388

18.1 MVC简介 388

18.2 模板系统 389

18.3 Smarty概述 389

18.3.1 Smarty的优点 389

18.3.2 Smarty开发特性 390

18.4 安装Smarty 390

18.5 Smarty开发基础 392

18.5.1 第一个模板程序 392

18.5.2 编译后的模板 393

18.5.3 Smarty区块 394

18.5.4 Smarty注释 394

18.5.5 Smarty变量与变量格式化 394

18.6 Smarty的控制结构 397

18.6.1 IF分支结构 397

18.6.2 循环结构 399

18.6.3 Smarty生成表单元素 407

18.6.4 Smarty文件包含 409

18.7 Smarty缓存 410

18.8 深入Smarty开发 410

18.8.1 register_function 410

18.8.2 register_block 411

18.8.3 register_modifier 411

18.8.4 在模板内运行PHP代码 411

18.8.5 几个重要的模板修饰符 412

18.8.6 Smarty的保留变量 413

18.8.7 模板配置文件 414

18.8.8 Smarty工作台 414

18.8.9 Smarty生成静态页面 415

18.8.10 制作线上日历 415

18.8.11 Smarty与ADODB 416

18.9 小结 418

第19章 PHP和Ajax技术 419

19.1 Ajax简介 419

19.2 Ajax特性 420

19.3 Xajax简介 420

19.4 Xajax如何工作 420

19.5 异步更新内容 421

19.6 异步处理表单数据 423

19.7 增加自定义功能 424

19.8 解决乱码 424

19.9 Smarty与Xajax 424

19.10 小结 426

第20章 使用PHP编写Shell 427

20.1 简介 427

20.2 PHP CLI Shell脚本 427

20.2.1 CLI 与CGI的区别 427

20.2.2 CLI的配置参数 427

20.3 PHP命令行接口(CLI) 428

20.4 CLI命令选项 429

20.5 CLI开发 430

20.6 CLI实际应用 434

20.7 小结 437

第21章 PHP网络开发 438

21.1 Socket技术 438

21.1.1 Socket原理 438

21.1.2 建立一个连接 439

21.1.3 发送一个请求 439

21.1.4 查询Whois信息 440

21.1.5 创建自己的Socket服务器 441

21.2 电子邮件 442

21.2.1 电子邮件简介 442

21.2.2 MTA和SMTP 442

21.2.3 PHP邮件配置 443

21.2.4 电子邮件头 444

21.2.5 MIME 444

21.3 使用mail()函数 446

21.4 使用Socket发送邮件 448

21.5 获取远程内容与自动化 449

21.5.1 使用CURL 449

21.5.2 使用Snoopy类 451

21.5.3 FTP操作 453

21.5.4 PHP与网络协议 455

21.6 小结 455

第22章 PHP文件上传 456

22.1 文件上传简介 456

22.2 处理上传文件 457

22.3 处理多文件上传 461

22.4 突破上传的内存限制 463

22.5 小结 463

第23章 图片与媒体处理 464

23.1 使用GD2扩展库 464

23.1.1 打开一张图片 465

23.1.2 打开任意格式的图片 465

23.1.3 显示和保存图片 466

23.1.4 图片转换 467

23.1.5 创建文字图片 468

23.1.6 绘制图形 469

23.1.7 创建验证码——CAPTCHA 470

23.1.8 缩略图片处理 471

23.1.9 创建水印图片 473

23.2 使用Ming扩展创建Flash 475

23.2.1 创建按钮 475

23.2.2 静态文字 476

23.2.3 动态文字 477

23.2.4 绘制图形 478

23.2.5 使用图片 479

23.3 使用ImageMagick 480

23.3.1 ImageMagick简介 480

23.3.2 安装ImageWand 481

23.3.3 读取图片内容 481

23.3.4 读取图片尺寸 482

23.3.5 图片裁切 482

23.3.6 生成图片缩略图 482

23.3.7 转换图片格式 483

23.3.8 控制图片旋转 483

23.3.9 重新缩放图片 484

23.3.10 加入渲染效果 484

23.3.11 压缩JPEG图片 485

23.4 小结 485

第24章 XML与RSS 486

24.1 XML 486

24.1.1 XML的结构与定义 486

24.1.2 XML与HTML 487

24.2 创建与解析XML文档 488

24.2.1 创建一个XML文档 489

24.2.2 使用SAX解析XML 490

24.2.3 DOM 492

24.2.4 SimpleXML 496

24.3 RSS聚合与解析技术 497

24.3.1 RSS简介 497

24.3.2 RSS 0.9 497

24.3.3 RSS3 1.0 498

24.3.4 RSS 2.0 499

24.3.5 Atom 501

24.4 XML Reader 503

24.5 XML与Smarty 504

24.6 小结 504

第25章 Web服务与SOAP 505

25.1 Web服务 505

25.1.1 Web服务概述 505

25.1.2 Web服务的特点 506

25.2 SOAP的消息体 507

25.2.1 SOAP封套(SOAP Envelope) 507

25.2.2 SOAP头(SOAP Header) 507

25.2.3 SOAP错误信息(SOAP Fault) 507

25.2.4 消息体(SOAP Body) 508

25.3 PHP中的SOAP配置 508

25.4 使用PHP开发SOAP应用 509

25.4.1 WSDL 509

25.4.2 建立SOAP服务器端 512

25.4.3 建立SOAP客户端 513

25.5 小结 513

第26章 PHP与WAP技术 514

26.1 WAP技术简介 514

26.2 WAP配置 514

26.3 WAP页面 514

26.3.1 WAP页面简介 515

26.3.2 WAP页面跳转 515

26.3.3 使用WAP制作登录页面 517

26.4 Smarty与WAP 521

26.5 小结 522

第五篇 PHP 5调试、升级与优化

第27章 错误与异常处理 524

27.1 概述 524

27.2 错误的类型 524

27.2.1 编程错误 524

27.2.2 未定义符号 525

27.2.3 轻量级错误 527

27.2.4 PHP产生的错误 528

27.2.5 错误与例外处理 530

27.3 小结 535

第28章 升级到PHP5 536

28.1 简介 536

28.2 对象的引用 536

28.3 构造对象 537

28.4 get_class函数 537

28.5 is_a()函数与instance of 537

28.6 E_STRICT 538

28.6.1 自动建立对象 538

28.6.2 var与public 538

28.7 其他兼容性的问题 538

28.7.1 命令行接口 538

28.7.2 旧的超级全局数组的升级 538

28.7.3 函数修正与功能升级 539

28.8 小结 539

第29章 PHP优化技巧 540

29.1 PHP脚本级优化 540

29.1.1 require比require_once快 541

29.1.2 不做重复的车轮 541

29.2 使用代码优化工具 542

29.3 缓存加速 543

29.3.1 使用eAccelerator 543

29.3.2 使用APC 545

29.4 HTTP加速 546

29.4.1 HTTP头信息 546

29.4.2 启用GZIP内容压缩 546

29.5 MySQL性能优化 546

29.5.1 添加索引 546

29.5.2 MySQL缓存与性能调优 547

29.6 MySQL日志维护 549

29.7 数据库外部优化 549

29.7.1 服务器硬件优化 549

29.7.2 磁盘优化 550

29.7.3 操作系统优化 550

29.8 使用反向代理 550

29.9 Apache服务器优化 551

29.10 内容压缩与优化 551

29.11 分布与负载均衡 552

29.12 小结 554

第2部分 实战PHP5

第30章 实例开发:会员注册系统 557

30.1 概述 557

30.2 页面流程 557

30.2.1 用户注册流程 557

30.2.2 用户登录流程 558

30.3 数据库结构 558

30.4 UI与界面 561

30.5 目录结构与文件说明 563

第31章 实例开发:圈子系统开发 571

31.1 目录结构与文件说明 571

31.2 页面流程 571

31.2.1 创建圈子 571

31.2.2 管理圈子 572

31.2.3 加入其他人创建的圈子 573

31.3 数据库结构 573

31.4 UI与界面 576

第32章 实例开发:爱问系统 578

32.1 概述 578

32.2 页面流程 578

32.3 目录结构与文件说明 580

32.4 UI与界面 581

32.5 数据库结构 585

第33章 实例开发:多用户博客系统 587

33.1 概述 587

33.2 目录结构与文件说明 587

33.3 页面流程 588

33.4 UI与界面 588

33.5 数据库结构 589

33.6 小结 591

附录A PHP在线资源 592

附录B Zend Core安装 593

附录C PHP扩展开发 599

附录D MySQL字符集与整理 601

附录E 代码页与Charset对照表 605

附录F php.ini配置详解 606

附录G HTTP返回代码表(RFC2068) 626