《PHP和MySQL Web开发 原书第4版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(澳)LukeWelling,LauraThomson;武欣译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111262817
  • 页数:714 页
图书介绍:本书将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子。

第一篇 使用PHP 1

第1章 PHP快速入门 1

1.1开始之前:了解PHP 2

1.2创建一个示例应用:Bob的汽车零部件商店 2

1.2.1创建订单表单 2

1.2.2表单处理 3

1.3在HTML中嵌入PHP 4

1.3.1PHP标记 5

1.3.2PHP语句 6

1.3.3空格 6

1.3.4注释 7

1.4添加动态内容 7

1.4.1调用函数 8

1.4.2使用date()函数 8

1.5访问表单变量 9

1.5.1简短、中等以及冗长风格的表单变量 9

1.5.2字符串的连接 11

1.5.3变量和文本 12

1.6理解标识符 12

1.7检查变量类型 13

1.7.1PHP的数据类型 13

1.7.2类型强度 13

1.7.3类型转换 14

1.7.4可变变量 14

1.8声明和使用常量 15

1.9理解变量的作用域 15

1.10使用操作符 16

1.10.1算术操作符 16

1.10.2字符串操作符 17

1.10.3赋值操作符 17

1.10.4比较操作符 19

1.10.5逻辑操作符 20

1.10.6位操作符 21

1.10.7其他操作符 21

1.11计算表单总金额 23

1.12理解操作符的优先级和结合性 24

1.13使用可变函数 25

1.13.1测试和设置变量类型 25

1.13.2测试变量状态 26

1.13.3变量的重解释 27

1.14根据条件进行决策 27

1.14.1if语句 27

1.14.2代码块 28

1.14.3else语句 28

1.14.4elseif语句 29

1.14.5switch语句 30

1.14.6比较不同的条件 31

1.15通过迭代实现重复动作 31

1.15.1while循环 33

1.15.2for和foreach循环 34

1.15.3do...while循环 35

1.16从控制结构或脚本中跳出 35

1.17使用可替换的控制结构语法 36

1.18使用declare 36

1.19下一章 36

第2章 数据的存储与检索 37

2.1保存数据以便后期使用 37

2.2存储和检索Bob的订单 37

2.3文件处理 38

2.4打开文件 38

2.4.1选择文件模式 39

2.4.2使用fopen()打开文件 39

2.4.3通过FTP或HTTP打开文件 41

2.4.4解决打开文件时可能遇到的问题 41

2.5写文件 43

2.5.1fwrite()的参数 44

2.5.2文件格式 44

2.6关闭文件 45

2.7读文件 47

2.7.1以只读模式打开文件:fopen() 47

2.7.2知道何时读完文件:feof() 48

2.7.3每次读取一行数据:fgets()、fgetss()和fgetcsv() 48

2.7.4读取整个文件:readfile()、fpassthru()和file() 49

2.7.5读取一个字符:fgetc() 50

2.7.6读取任意长度:fread() 50

2.8使用其他有用的文件函数 50

2.8.1查看文件是否存在:file_exists() 51

2.8.2确定文件大小:filesize() 51

2.8.3删除一个文件:unlink() 51

2.8.4在文件中定位:rewind()、fseek()和ftell() 51

2.9文件锁定 52

2.10更好的方式:数据库管理系统 53

2.10.1使用普通文件的几个问题 53

2.10.2RDBMS是如何解决这些问题的 54

2.11进一步学习 54

2.12下一章 54

第3章 使用数组 55

3.1什么是数组 55

3.2数字索引数组 56

3.2.1数字索引数组的初始化 56

3.2.2访问数组的内容 57

3.2.3使用循环访问数组 57

3.3使用不同索引的数组 58

3.3.1初始化关联数组 58

3.3.2访问数组元素 58

3.3.3使用循环语句 58

3.4数组操作符 60

3.5多维数组 60

3.6数组排序 63

3.6.1使用sort()函数 63

3.6.2使用asort()函数和ksort()函数对关联数组排序 64

3.6.3反向排序 64

3.7多维数组的排序 64

3.7.1用户定义排序 64

3.7.2反向用户排序 66

3.8对数组进行重新排序 66

3.8.1使用shuffle()函数 66

3.8.2使用array_reverse()函数 68

3.9从文件载入数组 68

3.10执行其他数组操作 71

3.10.1在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 71

3.10.2对数组的每一个元素应用任何函数:array_walk() 72

3.10.3统计数组元素个数:count()、sizeof()和array_count_values() 73

3.10.4将数组转换成标量变量:extract() 74

3.11进一步学习 75

3.12下一章 75

第4章 字符串操作与正则表达式 76

4.1创建一个示例应用程序:智能表单邮件 76

4.2字符串的格式化 78

4.2.1字符串的整理:chop()、ltrim()和trim() 78

4.2.2格式化字符串以便显示 78

4.2.3格式化字符串以便存储:addslashes()和stripslashes() 81

4.3用字符串函数连接和分割字符串 83

4.3.1使用函数explode()、implode()和join() 83

4.3.2使用strtok()函数 84

4.3.3使用substr()函数 84

4.4字符串的比较 85

4.4.1字符串的排序:strcmp()、strcasecmp()和strnatcmp() 85

4.4.2使用strlen()函数测试字符串的长度 86

4.5使用字符串函数匹配和替换子字符串 86

4.5.1在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 86

4.5.2查找子字符串的位置:strpos()、strrpos() 87

4.5.3替换子字符串:str_replace()、substr_replace() 88

4.6正则表达式的介绍 89

4.6.1基础知识 89

4.6.2字符集和类 89

4.6.3重复 90

4.6.4子表达式 91

4.6.5子表达式计数 91

4.6.6定位到字符串的开始或末尾 91

4.6.7分支 92

4.6.8匹配特殊字符 92

4.6.9特殊字符一览 92

4.6.10在智能表单中应用 93

4.7用正则表达式查找子字符串 93

4.8用正则表达式替换子字符串 94

4.9使用正则表达式分割字符串 94

4.10进一步学习 95

4.11下一章 95

第5章 代码重用与函数编写 96

5.1代码重用的好处 96

5.1.1成本 96

5.1.2可靠性 97

5.1.3一致性 97

5.2使用require()和include()函数 97

5.2.1文件扩展名和require()函数 97

5.2.2使用require()制作Web站点的模板 99

5.2.3使用auto_prepend_file和auto_append_file 103

5.3在PHP中使用函数 104

5.3.1调用函数 104

5.3.2调用未定义的函数 105

5.3.3理解字母大小写和函数名称 106

5.4理解为什么要定义自己的函数 106

5.5了解基本的函数结构 106

5.6使用参数 108

5.7理解作用域 110

5.8参数的引用传递和值传递 112

5.9使用Return关键字 113

5.10实现递归 115

5.11进一步学习 116

5.12下一章 116

第6章 面向对象的PHP 117

6.1理解面向对象的概念 117

6.1.1类和对象 117

6.1.2多态性 118

6.1.3继承 119

6.2在PHP中创建类、属性和操作 119

6.2.1类的结构 119

6.2.2构造函数 120

6.2.3析构函数 120

6.3类的实例化 121

6.4使用类的属性 121

6.5使用private和public关键字控制访问 123

6.6类操作的调用 124

6.7在PHP中实现继承 124

6.7.1通过继承使用private和protected访问修饰符控制可见性 125

6.7.2重载 126

6.7.3使用final关键字禁止继承和重载 128

6.7.4理解多重继承 128

6.7.5实现接口 129

6.8类的设计 130

6.9编写类代码 130

6.10理解PHP面向对象的高级功能 138

6.10.1使用Per-Class常量 138

6.10.2实现静态方法 138

6.10.3检查类的类型和类型提示 139

6.10.4延迟静态绑定 139

6.10.5克隆对象 140

6.10.6使用抽象类 140

6.10.7使用_call()重载方法 141

6.10.8使用_autoload()方法 141

6.10.9实现迭代器和迭代 142

6.10.10将类转换成字符串 144

6.10.11使用Reflection(反射)API 144

6.11下一章 145

第7章 错误和异常处理 146

7.1异常处理的概念 146

7.2Exception类 148

7.3用户自定义异常 148

7.4Bob的汽车零部件商店应用程序的异常 151

7.5异常和PHP的其他错误处理机制 154

7.6进一步学习 154

7.7下一章 154

第二篇 使用MySQL 155

第8章 设计Web数据库 155

8.1关系数据库的概念 155

8.1.1表格 156

8.1.2列 156

8.1.3行 156

8.1.4值 156

8.1.5键 156

8.1.6模式 157

8.1.7关系 158

8.2设计Web数据库 158

8.2.1考虑要建模的实际对象 158

8.2.2避免保存冗余数据 159

8.2.3使用原子列值 160

8.2.4选择有意义的键 161

8.2.5考虑需要询问数据库的问题 161

8.2.6避免多个空属性的设计 161

8.2.7表格类型的总结 162

8.3Web数据库架构 162

8.4进一步学习 163

8.5下一章 163

第9章 创建Web数据库 164

9.1使用MySQL监视程序 165

9.2登录到MySQL 165

9.3创建数据库和用户 166

9.4设置用户与权限 167

9.5MySQL权限系统的介绍 167

9.5.1最少权限原则 167

9.5.2创建用户:GRANT命令 167

9.5.3权限的类型和级别 169

9.5.4REVOKE命令 170

9.5.5使用GRANT和REVOKE的例子 170

9.6创建一个Web用户 171

9.7使用正确的数据库 172

9.8创建数据库表 172

9.8.1理解其他关键字的意思 174

9.8.2理解列的类型 174

9.8.3用SHOW和DESCRIBE来查看数据库 176

9.8.4创建索引 177

9.9理解MySQL的标识符 177

9.10选择列数据类型 178

9.10.1数字类型 178

9.10.2日期和时间类型 179

9.10.3字符串类型 180

9.11进一步学习 181

9.12下一章 181

第10章 使用MySQL数据库 182

10.1SQL是什么 182

10.2在数据库中插入数据 183

10.3从数据库中获取数据 185

10.3.1获取满足特定条件的数据 186

10.3.2从多个表中获取数据 187

10.3.3以特定的顺序获取数据 191

10.3.4分组与合计数据 192

10.3.5选择要返回的行 194

10.3.6使用子查询 194

10.4更新数据库记录 196

10.5创建后修改表 197

10.6删除数据库中的记录 198

10.7表的删除 199

10.8删除整个数据库 199

10.9进一步学习 199

10.10下一章 199

第11章 使用PHP从Web访问MySQL数据库 200

11.1Web数据库架构的工作原理 200

11.2从Web查询数据库的基本步骤 203

11.2.1检查与过滤用户输入数据 203

11.2.2建立一个连接 204

11.2.3选择使用的数据库 205

11.2.4查询数据库 206

11.2.5检索查询结果 206

11.2.6从数据库断开连接 207

11.3将新信息放入数据库 208

11.4使用Prepared语句 211

11.5使用PHP与数据库交互的其他接口 212

11.6进一步学习 215

11.7下一章 215

第12章 MySQL高级管理 216

12.1深入理解权限系统 216

12.1.1user表 217

12.1.2db表和host表 218

12.1.3tables_priv表、columns_priv表和procs_priv表 219

12.1.4访问控制:MySQL如何使用grant表 220

12.1.5更新权限:修改什么时候生效 221

12.2提高MySQL数据库的安全性 221

12.2.1从操作系统角度来保护MySQL 221

12.2.2密码 222

12.2.3用户权限 222

12.2.4Web问题 223

12.3获取更多关于数据库的信息 223

12.3.1使用SHOW获取信息 223

12.3.2使用DESCRIBE获取关于列的信息 225

12.3.3用EXPLAIN理解查询操作的工作过程 225

12.4数据库的优化 229

12.4.1设计优化 229

12.4.2权限 229

12.4.3表的优化 229

12.4.4使用索引 230

12.4.5使用默认值 230

12.4.6其他技巧 230

12.5备份MySQL数据库 230

12.6恢复MySQL数据库 231

12.7实现复制 231

12.7.1设置主服务器 232

12.7.2执行初始的数据传输 232

12.7.3设置一个/多个从服务器 233

12.8进一步学习 233

12.9下一章 233

第13章 MySQL高级编程 234

13.1LOAD DATAINFILE语句 234

13.2存储引擎 234

13.3事务 235

13.3.1理解事务的定义 235

13.3.2通过InnoDB使用事务 236

13.4外键 237

13.5存储过程 238

13.5.1基本示例 238

13.5.2局部变量 240

13.5.3游标和控制结构 241

13.6进一步学习 244

13.7下一章 244

第三篇 电子商务与安全性 245

第14章 运营一个电子商务网站 245

14.1我们要实现什么目标 245

14.2考虑电子商务网站的类型 245

14.2.1使用在线说明书公布信息 246

14.2.2接收产品或服务的订单 247

14.2.3提供服务和数字产品 250

14.2.4为产品或服务增值 251

14.2.5减少成本 251

14.3理解风险和威胁 252

14.3.1网络黑客 252

14.3.2不能招揽足够的生意 253

14.3.3计算机硬件故障 253

14.3.4电力、通信、网络或运输故障 253

14.3.5广泛的竞争 253

14.3.6软件错误 254

14.3.7不断变化的政府政策和税收 254

14.3.8系统容量限制 254

14.4选择一个策略 254

14.5下一章 254

第15章 电子商务的安全问题 255

15.1信息的重要程度 255

15.2安全威胁 256

15.2.1机密数据的泄露 256

15.2.2数据丢失和数据破坏 257

15.2.3数据修改 258

15.2.4拒绝服务 258

15.2.5软件错误 259

15.2.6否认 260

15.3易用性、性能、成本和安全性 261

15.4建立一套安全政策 261

15.5身份验证原则 262

15.6加密技术基础 263

15.6.1私有密钥加密 264

15.6.2公有密钥加密 264

15.6.3数字签名 265

15.7数字证书 265

15.8安全的Web服务器 266

15.9审计与日志记录 267

15.10防火墙 267

15.11备份数据 268

15.11.1备份常规文件 268

15.11.2备份与恢复MySQL数据库 268

15.12自然环境的安全性 268

15.13下一章 269

第16章 Web应用的安全 270

16.1处理安全性问题的策略 270

16.1.1以正确心态为开始 270

16.1.2安全性和可用性之间的平衡 271

16.1.3安全监视 271

16.1.4基本方法 271

16.2识别所面临的威胁 271

16.2.1访问或修改敏感数据 272

16.2.2数据丢失或破坏 272

16.2.3拒绝服务 272

16.2.4恶意代码注入 272

16.2.5服务器被攻破 273

16.3了解与我们“打交道”的用户 273

16.3.1破解人员 273

16.3.2受影响机器的未知情用户 274

16.3.3对公司不满的员工 274

16.3.4硬件被盗 274

16.3.5我们自身 274

16.4代码的安全性 274

16.4.1过滤用户输入 274

16.4.2转义输出 278

16.4.3代码组织 279

16.4.4代码自身的问题 280

16.4.5文件系统因素 281

16.4.6代码稳定性和缺陷 281

16.4.7执行引号和exec 282

16.5Web服务器和PHP的安全性 283

16.5.1保持软件的更新 283

16.5.2查看php.ini文件 284

16.5.3Web服务器配置 284

16.5.4Web应用的商业主机服务 285

16.6数据库服务器的安全性 286

16.6.1用户和权限系统 286

16.6.2发送数据至服务器 287

16.6.3连接服务器 287

16.6.4运行服务器 288

16.7保护网络 288

16.7.1安装防火墙 288

16.7.2使用隔离区域(DMZ) 288

16.7.3应对DoS和DDoS攻击 289

16.8计算机和操作系统的安全性 289

16.8.1保持操作系统的更新 289

16.8.2只运行必需的软件 290

16.8.3服务器的物理安全性 290

16.9 灾难计划 290

16.10下一章 291

第17章 使用PHP和MySQL实现身份验证 292

17.1识别访问者 292

17.2实现访问控制 293

17.2.1保存密码 294

17.2.2密码的加密 296

17.2.3保护多个网页 298

17.3使用基本身份验证 298

17.4在PHP中使用基本身份验证 299

17.5在Apache的.htaccess文件中使用基本身份验证 301

17.6使用mod_auth_mysql身份验证 303

17.6.1安装mod_auth_mysql 304

17.6.2使用mod_authmysql 304

17.7创建自定义身份验证 305

17.8进一步学习 306

17.9下一章 306

第18章 使用PHP和MySQL实现安全事务 307

18.1提供安全的事务处理 307

18.1.1用户机器 308

18.1.2Internet 309

18.1.3我们的系统 309

18.2使用加密套接字层(SSL) 310

18.3屏蔽用户的输入 312

18.4提供安全存储 313

18.5存储信用卡号码 314

18.6在PHP中使用加密技术 314

18.6.1安装GPG 315

18.6.2测试GPG 317

18.7进一步学习 321

18.8下一章 321

第四篇 PHP的高级技术 323

第19章 与文件系统和服务器的交互 323

19.1文件上传 323

19.1.1文件上传的HTML代码 324

19.1.2编写处理文件的PHP 325

19.1.3避免常见上传问题 329

19.2使用目录函数 329

19.2.1从目录读取 329

19.2.2获得当前目录的信息 332

19.2.3创建和删除目录 333

19.3与文件系统的交互 333

19.3.1获取文件信息 333

19.3.2更改文件属性 336

19.3.3创建、删除和移动文件 336

19.4使用程序执行函数 337

19.5与环境变量交互:getenv()和putenv() 339

19.6进一步学习 339

19.7下一章 339

第20章 使用网络函数和协议函数 340

20.1了解可供使用的协议 340

20.2发送和读取电子邮件 340

20.3使用其他Web站点的数据 341

20.4使用网络查找函数 343

20.5备份或镜像一个文件 347

20.5.1使用FTP备份或镜像一个文件 347

20.5.2上传文件 353

20.5.3避免超时 353

20.5.4使用其他的FTP函数 353

20.6进一步学习 354

20.7下一章 354

第21章 日期和时间的管理 355

21.1在PHP中获取日期和时间 355

21.1.1使用date()函数 355

21.1.2使用UNIX时间戳 356

21.1.3使用getdate()函数 357

21.1.4使用checkdate()函数检验日期有效性 358

21.1.5格式化时间戳 358

21.2在PHP日期格式和MySQL日期格式之间进行转换 360

21.3在PHP中计算日期 362

21.4在MySQL中计算日期 363

21.5使用微秒 364

21.6使用日历函数 364

21.7进一步学习 365

21.8下一章 365

第22章 创建图像 366

22.1在PHP中设置图像支持 366

22.2理解图像格式 367

22.2.1JPEG 367

22.2.2PNG 367

22.2.3WBMP 368

22.2.4GIF 368

22.3创建图像 368

22.3.1创建一个背景图像 369

22.3.2在图像上绘图或打印文本 369

22.3.3输出最终图形 371

22.3.4清理 372

22.4在其他页面中使用自动生成的图像 372

22.5使用文本和字体创建图像 372

22.5.1创建基本画布 375

22.5.2将文本调整到适合按钮 375

22.5.3放置文本 378

22.5.4将文本写到按钮上 378

22.5.5完成 378

22.6绘制图像与用图表描绘数据 379

22.7使用其他图像函数 386

22.8进一步学习 386

22.9下一章 386

第23章 在PHP中使用会话控制 387

23.1什么是会话控制 387

23.2理解基本的会话功能 387

23.2.1什么是cookie 388

23.2.2通过PHP设置cookie 388

23.2.3在会话中使用cookie 388

23.2.4存储会话ID 389

23.3实现简单的会话 389

23.3.1开始一个会话 389

23.3.2注册一个会话变量 390

23.3.3使用会话变量 390

23.3.4注销变量与销毁会话 390

23.4创建一个简单的会话例子 391

23.5配置会话控制 392

23.6通过会话控制实现身份验证 393

23.7进一步学习 398

23.8下一章 398

第24章 其他有用的特性 399

24.1使用eval()函数对字符串求值 399

24.2终止执行:die()和exit() 399

24.3序列化变量和对象 400

24.4获取PHP环境信息 401

24.4.1找到所加载的PHP扩展部件 401

24.4.2识别脚本所有者 402

24.4.3确定脚本最近修改时间 402

24.5暂时改变运行时环境 402

24.6源代码加亮 403

24.7在命令行中使用PHP 404

24.8下一章 404

第五篇 创建实用的PHP和MySQL项目 405

第25章 在大型项目中使用PHP和MySQL 405

25.1在Web开发中应用软件工程 405

25.2规划和运行Web应用程序项目 406

25.3重用代码 406

25.4编写可维护代码 407

25.4.1编码标准 407

25.4.2分解代码 410

25.4.3使用标准的目录结构 410

25.4.4文档化和共享内部函数 410

25.5实现版本控制 411

25.6选择一个开发环境 412

25.7项目的文档化 412

25.8建立原型 413

25.9将逻辑和内容分离 413

25.10优化代码 414

25.10.1使用简单优化 414

25.10.2使用Zend产品 414

25.11测试 415

25.12进一步学习 415

25.13下一章 416

第26章 调试 417

26.1编程错误 417

26.1.1语法错误 417

26.1.2运行时错误 418

26.1.3逻辑错误 423

26.2使用变量帮助调试 424

26.3错误报告级别 426

26.4改变错误报告设置 427

26.5触发自定义错误 428

26.6巧妙地处理错误 428

26.7下一章 431

第27章 建立用户身份验证机制和个性化设置 432

27.1解决方案的组成 432

27.1.1用户识别和个性化设置 432

27.1.2保存书签 433

27.1.3推荐书签 433

27.2解决方案概述 433

27.3实现数据库 435

27.4实现基本的网站 436

27.5实现用户身份验证 438

27.5.1注册用户 438

27.5.2登录 443

27.5.3登出 447

27.5.4修改密码 447

27.5.5重设遗忘的密码 449

27.6实现书签的存储和检索 454

27.6.1添加书签 454

27.6.2显示书签 456

27.6.3删除书签 457

27.7实现书签推荐 459

27.8考虑可能的扩展 462

27.9下一章 462

第28章 创建一个购物车 463

28.1解决方案的组成 463

28.1.1创建一个在线目录 463

28.1.2在用户购买商品的时候记录购买行为 464

28.1.3实现一个付款系统 464

28.1.4创建一个管理界面 464

28.2解决方案概述 465

28.3实现数据库 467

28.4实现在线目录 469

28.4.1列出目录 470

28.4.2列出一个目录中的所有图书 472

28.4.3显示图书详细信息 474

28.5实现购物车 475

28.5.1使用show cart.php脚本 476

28.5.2浏览购物车 479

28.5.3将物品添加到购物车 481

28.5.4保存更新后的购物车 483

28.5.5打印标题栏摘要 483

28.5.6结账 484

28.6实现付款 490

28.7实现一个管理界面 491

28.8扩展该项目 498

28.9使用一个已有系统 498

28.10下一章 499

第29章 创建一个基于Web的电子邮件服务系统 500

29.1解决方案的组成 500

29.1.1电子邮件协议:POP3和IMAP 500

29.1.2PHP对POP3和IMAP的支持 501

29.2解决方案概述 502

29.3建立数据库 503

29.4了解脚本架构 504

29.5登录与登出 510

29.6建立账户 513

29.6.1创建一个新账户 515

29.6.2修改已有账户 516

29.6.3删除账户 516

29.7阅读邮件 517

29.7.1选择账户 517

29.7.2查看邮箱内容 519

29.7.3阅读邮件消息 522

29.7.4查看消息标题 525

29.7.5删除邮件 525

29.8发送邮件 526

29.8.1发送一则新消息 526

29.8.2回复或转发邮件 528

29.9扩展这个项目 530

29.10下一章 530

第30章 创建一个邮件列表管理器 531

30.1解决方案的组成 531

30.1.1建立列表和订阅者数据库 532

30.1.2上载新闻信件 532

30.1.3发送带附件的邮件 532

30.2解决方案概述 533

30.3建立数据库 534

30.4定义脚本架构 536

30.5实现登录 543

30.5.1新账户的创建 543

30.5.2登录 546

30.6用户函数的实现 548

30.6.1查看列表 548

30.6.2查看邮件列表信息 553

30.6.3查看邮件列表存档 555

30.6.4订阅与取消订阅 556

30.6.5更改账户设置 557

30.6.6更改密码 558

30.6.7登出 559

30.7管理功能的实现 560

30.7.1创建新的邮件列表 560

30.7.2上载新的新闻信件 562

30.7.3多文件上载的处理 565

30.7.4预览新闻信件 569

30.7.5发送邮件 570

30.8扩展这个项目 576

30.9下一章 576

第31章 创建一个Web论坛 577

31.1理解流程 577

31.2解决方案的组成 577

31.3解决方案概述 579

31.4数据库的设计 579

31.5查看文章的树形结构 581

31.5.1展开和折叠 583

31.5.2显示文章 585

31.5.3使用treenode类 586

31.6查看单个的文章 592

31.7添加新文章 593

31.8添加扩充 600

31.9使用一个已有的系统 600

31.10下一章 600

第32章 生成PDF格式的个性化文档 601

32.1项目概述 601

32.2解决方案的组成 604

32.2.1问题与回答系统 605

32.2.2文档生成软件 605

32.3解决方案概述 607

32.3.1提问 607

32.3.2给答题评分 609

32.3.3生成RTF证书 611

32.3.4从模板生成PDF证书 615

32.3.5使用PDFlib生成PDF文档 618

32.3.6使用PDFlib的一个“Hello World”程序 618

32.3.7用PDFlib生成证书 621

32.4处理标题的问题 628

32.5扩展该项目 629

32.6下一章 629

第33章 使用XML和SOAP来连接Web服务 630

33.1项目概述:使用XML和Web服务 630

33.1.1理解XML 631

33.1.2理解Web服务 633

33.2解决方案的组成 635

33.2.1使用Amazon的Web服务接口 635

33.2.2XML的解析:REST响应 636

33.2.3在PHP中使用SOAP 636

33.2.4缓存 636

33.3解决方案概述 636

33.3.1核心应用程序 640

33.3.2显示特定种类的图书 646

33.3.3获得一个AmazonResultSet类 647

33.3.4使用REST发送和接收请求 656

33.3.5使用SOAP发送和接收请求 662

33.3.6缓存请求返回的数据 664

33.3.7创建购物车 666

33.3.8到Amazon付账 670

33.4安装项目代码 670

33.5扩展这个项目 671

33.6进一步学习 671

第34章 使用Ajax构建Web 2.0应用 672

34.1Ajax是什么 672

34.1.1HTTP请求和响应 673

34.1.2DHTML和XHTML 673

34.1.3级联样式单 674

34.1.4客户端编程 675

34.1.5服务器端编程 675

34.1.6XML和XSLT 676

34.2Ajax基础 676

34.2.1XMLHTTPRequest对象 676

34.2.2与服务器通信 678

34.2.3处理服务器响应 679

34.2.4整合应用 681

34.3在以前的项目添加Ajax元素 683

34.4进一步学习 694

34.4.1进一步了解文档对象模型(DOM) 694

34.4.2Ajax应用可用的JavaScript函数库 694

34.4.3Ajax开发人员网站 695

附录 697

附录A 安装PHP及MySQL 697

附录B Web资源 712