《PHP 5完全攻略》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:杜江编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121107825
  • 页数:664 页
图书介绍:本书是目前中文版本第一个真正介绍PHP 5及MySQL 5新增语法与功能的权威宝典!本书本着精、全、要三宗旨,从理论中延伸,从实践中深入,详实并完善地描述了PHP 5的开发特性与MySQL 5数据库,如PHP数组与表单处理、PHP 5面向对象开发、Ajax、CLI、字符流处理、加密技术、图片处理及PHP代码优化,以及存储过程、游标、事务等进阶内容。

第1部分 PHP 5基础 3

第一篇 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的新特性 7

1.2.1 新的面向对象模式 7

1.2.2 新的面向对象特性 7

1.2.3 其他新特性 11

1.2.4 PHP 5.3新特性 12

1.2.5 MySQL 5.1新特性 12

1.3 PHP 5的扩展库 13

1.3.1 XML扩展 13

1.3.2 SPL 14

1.3.3 MySQLi扩展 15

1.3.4 PDO数据库抽象层 15

1.3.5 JSON扩展 15

1.4 PHP 5外部扩展库 15

1.4.1 PECL扩展 15

1.4.2 PEAR扩展 16

1.5 PHP 5的其他更新 16

1.5.1 Zend引擎2.x 16

1.5.2 新的内存管理器 16

1.5.3 Zend Optimizer与Zend Core 17

1.6 PHP与Web服务器 17

1.6.1 Apache 17

1.6.2 Microsoft IIS 17

1.6.3 其他Web服务器 18

1.7 PHP 5安装与配置 18

1.7.1 Win32平台下Apache环境安装 18

1.7.2 Win32平台下IIS环境安装 35

1.7.3 使用集成化安装包 38

1.7.4 FreeBSD平台 39

1.7.5 Linux平台 45

1.8 PHP配置与初步优化 48

1.9 其他需注意的问题 48

1.10 PHP开发工具 49

1.11 小结 54

第2章 PHP 5开发基础 55

2.1 PHP初相遇 55

2.2 几个技术点 56

2.2.1 PHP语句 57

2.2.2 空格与空行 57

2.2.3 注释 57

2.2.4 函数调用 58

2.3 变量与变量名 58

2.4 变量的赋值 59

2.5 变量的引用赋值 59

2.6 PHP的数据类型 60

2.7 标量数据类型 60

2.7.1 整型 60

2.7.2 浮点型 60

2.7.3 字符串型 61

2.7.4 布尔型 61

2.8 复合数据类型 61

2.8.1 数组 61

2.8.2 对象 62

2.9 特殊数据类型 63

2.9.1 NULL 63

2.9.2 资源 63

2.10 变量打印与输出 64

2.10.1 使用echo函数 64

2.10.2 使用print函数 64

2.10.3 echo和print的区别 64

2.10.4 使用printf函数 65

2.10.5 使用sprintf函数 65

2.10.6 显示数组与对象 66

2.11 变量操作符 67

2.11.1 算术运算符 67

2.11.2 赋值操作符 68

2.11.3 字符串连接 68

2.11.4 字符串换行连接 68

2.11.5 花括号的作用 69

2.11.6 单引号与双引号 70

2.11.7 HereDoc 70

2.11.8 转义操作符 71

2.11.9 格式控制符 71

2.11.10 递增与递减操作符 72

2.11.11 三元操作符 72

2.11.12 比较运算符 73

2.11.13 布尔运算符 74

2.11.14 位操作符 75

2.12 数据类型自动转换 76

2.13 数据类型强制转换 77

2.13.1 转换为整型数据 78

2.13.2 用intval()函数取整 78

2.13.3 转换为浮点型数据 78

2.13.4 转换为布尔型数据 79

2.13.5 转换为字符串型数据 79

2.13.6 转换为数组 79

2.13.7 转换为对象 80

2.14 超级全局数组 80

2.14.1 $_SERVER超级全局变量数组 81

2.14.2 修改全局数组的值 84

2.15 变量与脚本处理 84

2.15.1 使用isset()函数检测变量定义 84

2.15.2 使用unset()函数删除变量 85

2.15.3 使用empty()函数检测变量值是否为空 85

2.15.4 其他检测类函数族 85

2.16 常量 85

2.16.1 定义常量 86

2.16.2 PHP魔术常量 86

2.17 PHP的控制结构 87

2.17.1 分支结构语句 87

2.17.2 循环结构语句 92

2.18 包含控制语句 97

2.18.1 include与require 97

2.18.2 include_once与require_once 98

2.18.3 eval() 98

2.18.4 中止脚本的执行:exit()与die() 99

2.19 函数 99

2.19.1 函数的命名 100

2.19.2 函数的结构 100

2.19.3 从函数中返回值 101

2.19.4 函数参数的传递 102

2.19.5 函数与全局变量 106

2.19.6 函数的静态变量 107

2.19.7 函数中使用常量 108

2.19.8 递归函数 109

2.19.9 解决函数重名的方法 109

2.20 可变变量 110

2.21 字符串操作 110

2.21.1 手动转义字符串数据 110

2.21.2 自动转义字符串数据 111

2.21.3 数值转换字符串 112

2.21.4 字符串序列化 112

2.21.5 清理字符串中的空格 114

2.21.6 格式化字符串 114

2.21.7 字符串切分 115

2.21.8 字符串截取 115

2.21.9 计算字符串的长度 116

2.21.10 字符串单词统计 116

2.21.11 字符串查找 117

2.21.12 字符串处理 118

2.22 日期与时间 124

2.22.1 UNIX时间戳 124

2.22.2 日期函数 124

2.22.3 时间函数 128

2.23 网络相关处理 130

2.23.1 header()函数 131

2.23.2 处理URL字符串 133

2.23.3 获得PHP环境信息 135

2.24 其他操作符 135

2.24.1 @—错误抑制符 135

2.24.2 执行外部命令 135

2.25 小结 136

第3章 正则表达式 137

3.1 正则表达式简介 137

3.2 正则表达式功能 137

3.3 POSIX正则表达式 138

3.3.1 ^和$定位符 138

3.3.2 POSIX量词 138

3.3.3 方括号表达式 139

3.3.4 预定义字符簇 140

3.3.5 POSIX正则表达式函数 140

3.4 PCRE正则表达式函数 142

3.4.1 PCRE字符类 142

3.4.2 PCRE匹配 142

3.4.3 PCRE正则表达式函数 143

3.5 正则表达式VS函数 149

3.6 创建BBCode 149

3.7 小结 150

第4章 PHP数组 151

4.1 什么是数组 151

4.2 数组的类型 152

4.2.1 数字索引数组 152

4.2.2 关联数组 152

4.3 数组的构造 153

4.3.1 一维数组 153

4.3.2 二维数组与多维数组 154

4.3.3 多维数组 159

4.4 快速创建数组 161

4.4.1 使用range()函数 161

4.4.2 为数组追加数据 162

4.4.3 修改数组内容 162

4.5 访问和处理数组内容 162

4.5.1 数字索引数组排序 162

4.5.2 关联数组排序 163

4.5.3 数组随机抽取shuffle()和array_rand() 164

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

4.5.5 数组联合array_combine 166

4.5.6 数据合并array_merge 166

4.5.7 查找数组中键名是否存在 167

4.5.8 查找数组值是否存在 168

4.5.9 计算数组中数值元素的和 169

4.5.10 去除数组中重复的元素值 169

4.5.11 移动数组内部指针 170

4.5.12 取得关联数组的键名 170

4.5.13 访问数组的键名和元素 170

4.5.14 判断数组的类型 171

4.5.15 显示数组内容与结构 171

4.5.16 移除数组中的指定元素 173

4.5.17 在数组顶部插入元素 174

4.5.18 在数组任意位置插入元素 174

4.5.19 数组元素的统计count()函数和sizeof()函数 175

4.5.20 数组键名与值的对调array_flip()函数 175

4.5.21 对数组元素分组统计array_values()函数 176

4.5.22 删除数组首末尾元素 177

4.5.23 删除数组中任意位置的元素 177

4.5.24 将数组内容导出为变量extract()函数 179

4.6 数组遍历(使用foreach) 180

4.6.1 一维索引数组的遍历 180

4.6.2 一维关联数组的遍历 181

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

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

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

4.10 数组复位reset()函数 185

4.10.1 each() 185

4.10.2 list() 185

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

4.12 数组内容过滤 186

4.13 小结 188

第二篇 PHP 5核心应用与规范第5章 表单——处理用户输入 190

5.1 表单与HTML 190

5.2 表单与PHP 190

5.3 表单设计 191

5.3.1 文本框 191

5.3.2 密码文本框 191

5.3.3 单选项 192

5.3.4 复选项 192

5.3.5 下拉列表 193

5.3.6 表单属性 194

5.3.7 提交与复位按钮 194

5.4 GET与POST方法 195

5.4.1 使用GET方法 195

5.4.2 使用POST方法 199

5.4.3 POST方法和GET方法混合使用 200

5.4.4 POST方法和GET方法的区别 202

5.4.5 选择POST还是GET 202

5.5 动态生成表单 202

5.6 表单的处理方法 205

5.6.1 检查表单提交的来源 205

5.6.2 一个完整表单处理 206

5.7 其他处理表单的方法 208

5.7.1 使用import_request_variables()函数 208

5.7.2 使用extract()函数 209

5.8 多页面间传递数据 210

5.9 验证表单数据 210

5.9.1 客户端验证 210

5.9.2 服务器端验证 211

5.9.3 避免表单重复提交 211

5.9.4 表单过期的处理 213

5.9.5 判断表单动作的技巧 213

5.10 表单安全 214

5.10.1 处理全局性错误 214

5.10.2 预防SQL注入 217

5.11 开发安全的代码 218

5.11.1 用户输入验证 218

5.11.2 高级数据验证:使用ctype 218

5.11.3 数据过滤-PECL filter扩展 219

5.11.4 input_get()函数 220

5.11.5 路径检测 221

5.11.6 魔法引用magic_quotes_gpc 221

5.11.7 其他高效的解决方案 221

5.12 小结 222

第6章 PHP加密技术 223

6.1 MD5算法 223

6.2 SHA-1算法 223

6.3 Cracklib扩展库 224

6.4 mcrypt扩展与DES算法 224

6.4.1 mcrypt加密扩展 225

6.4.2 mcrypt加密模式 225

6.4.3 mcrypt初始化向量 226

6.4.4 mcrypt加密与解密方法 227

6.5 小结 228

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

7.1 I18N和L10N 229

7.2 字符集与编码 229

7.2.1 ASCII字符集 230

7.2.2 ISO-8859字符集 230

7.2.3 ANSI编码 230

7.2.4 GB2312与GBK编码 230

7.2.5 Unicode字符集 231

7.2.6 正确使用文件编码 232

7.3 gettext扩展库 232

7.3.1 设置gettext 233

7.3.2 php_gettext函数集 233

7.3.3 编写I18N程序 233

7.3.4 设置gettext po文件 234

7.4 系统本地化函数族 236

7.4.1 setlocale()函数 236

7.4.2 货币值本地化 237

7.4.3 使用pc_format_currency()函数 238

7.5 Iconv()函数 239

7.6 mbstring扩展库 240

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

7.6.2 检测字符串编码 241

7.6.3 mbstring转换编码 241

7.7 小结 242

第8章 PHP开发规范 243

8.1 代码结构 243

8.1.1 一个脚本服务全部 243

8.1.2 分离显示逻辑 244

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

8.2.1 代码注释 245

8.2.2 代码缩进 246

8.2.3 使用必要的空格 246

8.2.4 SQL编写规范 247

8.2.5 控制结构 247

8.2.6 函数的命名 247

8.2.7 类命名规范 248

8.2.8 减少出错的技巧 248

8.3 小结 249

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

9.1 面向对象基础 250

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

9.2.1 类的封装 251

9.2.2 类的继承 251

9.3 对象 251

9.4 创建和使用类 252

9.5 类的结构与定义 252

9.6 成员方法 252

9.7 成员变量与属性 253

9.8 $this关键字 254

9.9 构造方法 254

9.10 析构方法 256

9.11 类的继承与多态 256

9.11.1 类的继承——extends 256

9.11.2 数据的隐藏 258

9.11.3 访问成员变量的约束 258

9.11.4 设置访问成员方法 259

9.11.5 类常量 260

9.11.6 静态成员变量 260

9.11.7 静态成员方法 262

9.12 对象传递 262

9.13 克隆一个对象——clone 263

9.14 对象的比较 263

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

9.16 克隆一个成员方法 264

9.17 类的多态性 265

9.18 parent∷与self∷关键字 267

9.19 抽象方法与抽象类 267

9.20 接口的实现 269

9.21 实现多个接口 270

9.22 final方法 272

9.23 final类 272

9.24 例外与异常处理 273

9.25 方法中声明类的类型 274

9.26 重载与多态 275

9.27 魔术方法 275

9.27.1 __get()与__set()方法 275

9.27.2 __call()方法 276

9.27.3 __sleep()与__wakeup()方法 277

9.27.4 __toString()方法 277

9.27.5 __autoload()方法 278

9.28 类映射API Reflection 279

9.29 小结 286

第10章 PHP会话管理 287

10.1 概述 287

10.2 Cookie管理 287

10.2.1 什么是Cookie 288

10.2.2 Cookie工作原理 288

10.2.3 Cookie应用开发 288

10.2.4 一个通用的Cookie类 292

10.2.5 解决方案 293

10.3 Session管理 294

10.3.1 什么是Session 294

10.3.2 Session配置 295

10.3.3 Session应用 297

10.3.5 Session编码与解码 300

10.3.6 Session中保存数组 300

10.3.6 Session中保存对象 301

10.3.7 Session存取优化 303

10.3.8 多服务器下共享Session 304

10.3.9 Session安全 307

10.4 小结 308

第11章 PHP输入输出缓冲 309

11.1 缓冲技术简介 309

11.2 从缓冲读取内容 310

11.3 使用回调函数 311

11.4 输出回调函数 311

11.5 压缩内容输出 312

11.6 小结 312

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

12.1 文件与路径 313

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

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

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

12.2 文件类型与相关信息 314

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

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

12.2.3 fileperms()——文件属性以及权限 315

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

12.3 文件的顺序读写 315

12.3.1 文件打开与写入 315

12.3.2 文件输出 317

12.3.3 读取文件内容 318

12.4 文件的非线性读写 318

12.4.1 fseek()函数 319

12.4.2 ftell()函数 319

12.4.3 rewind()函数 319

12.4.4 parse_ini_file()函数 320

12.5 自定义日志记录 321

12.6 目录和磁盘操作 321

12.6.1 disk_free_space()——统计某个目录的剩余空间 321

12.6.2 disk_total_space()——显示逻辑磁盘的容量 322

12.6.3 getcwd()/chdir()函数 322

12.6.4 opendir()与readdir()函数 322

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

12.7 字符流 324

12.7.1 流与封装器的原理 325

12.7.2 PHP 5的预置流包装器 325

12.7.4 流与封装器的应用 326

12.7.5 Filter过滤器及其应用 328

12.7.6 流相关函数 330

12.7.7 创建自己的流过滤器 331

12.8 取得HTTPS加密内容 332

12.9 创建自己的流封装器 333

12.10 小结 334

第三篇 MySQL 5与PHP 5接口第13章 WEB数据库设计 336

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

13.2 数据库设计的步骤 337

13.3 表名与字段名规则 338

13.4 小结 339

第14章 MySQL 5数据库 340

14.1 MySQL简介 340

14.2 MySQL 5特性 341

14.2.1 MySQL 5优点 341

14.2.2 MySQL 5缺点 341

14.2.3 MySQL 5性能 341

14.3 MySQL数据库存储类型 342

14.4 MySQL字段类型 343

14.5 MySQL字符集与整理 344

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

14.5.2 修改MySQL字符集方法 344

14.6 MYSQL 5应用与管理 345

14.6.1 登录到MySQL 345

14.6.2 修改root管理密码 346

14.6.3 创建数据库 346

14.6.4 改变数据库存储路径 346

14.6.5 MySQL权限系统 347

14.6.6 phpMyAdmin管理工具 350

14.7 MySQL管理工具 357

14.8 小结 357

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

15.1 MySQL操作与SQL 358

15.2 检索表中的数据 361

15.2.1 SELECT语句 361

15.2.2 SELECT的聚集函数 362

15.2.3 结果集排序 362

15.2.4 函数 362

15.2.5 关联查询 362

15.3 高级SQL技术 364

15.3.1 主键 364

15.3.2 子查询 365

15.3.3 联合查询 365

15.4 MySQL事务处理与触发器 365

15.4.1 存储进程 365

15.4.2 触发器(trigger) 366

15.4.3 视图 366

15.4.4 PHP与MySQL字符集 367

15.5 小结 368

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

16.1 PHP5与MySQL连接的mysql扩展 369

16.2 数据库查询 370

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

16.4 PHP 5与MySQL的新接口mysqli 375

16.5 智能选择MySQL扩展 384

16.6 小结 387

第17章 PHP数据库抽象层 388

17.1 什么是数据库抽象层 388

17.2 常用的数据库抽象层 389

17.2.1 PEAR:DB 389

17.2.2 ADODB 390

17.2.3 Metabase 390

17.2.4 MDB 391

17.2.5 MDB2 391

17.2.6 Creole 392

17.2.7 PDO 392

17.2.8 PHPLib 392

17.3 PDO数据库抽象类 392

17.3.1 PDO简介 392

17.3.2 PDO的安装 393

17.3.3 PDO连接数据库 393

17.3.4 使用PDO查询 394

17.3.5 错误与异常处理 395

17.3.6 取得查询结果 397

17.4 ADODB 401

17.4.1 使用ADODB 401

17.4.2 ADODB安装 402

17.4.3 启动ADODB 402

17.4.4 ADODB的查询方法 403

17.4.5 移动记录集 403

17.4.6 使用ADODB生成HTML 404

17.4.7 使用ADODB进行分页 404

17.4.8 生成下拉选择菜单 404

17.4.9 ADODB开发实例 404

17.5 PHPLib 416

17.5.1 使用PHPLib查询 416

17.5.2 创建GetAll方法 418

17.6 小结 419

第四篇 PHP 5进阶与技巧第18章 Smarty与模板技术 421

18.1 MVC简介 421

18.2 模板系统 422

18.3 Smarty概述 422

18.3.1 Smarty的优点 422

18.3.2 Smarty开发特性 423

18.4 安装Smarty 423

18.5 Smarty开发基础 425

18.5.1 第一个模板程序 425

18.5.2 编译后的模板 426

18.5.3 Smarty区块 427

18.5.4 Smarty注释 427

18.5.5 Smarty变量与变量格式化 427

18.6 Smarty的控制结构 430

18.6.1 IF分支结构 430

18.6.2 循环结构 432

18.6.3 Smarty生成表单元素 440

18.6.4 Smarty文件包含 442

18.7 Smarty缓存 443

18.8 深入Smarty开发 444

18.8.1 register_function 444

18.8.2 register_block 444

18.8.3 register_modifier 444

18.8.4 在模板内运行PHP代码 445

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

18.8.6 Smarty的保留变量 446

18.8.7 模板配置文件 447

18.8.8 Smarty工作台 447

18.8.9 Smarty生成静态页面 448

18.8.10 制作在线日历 448

18.8.11 Smarty与ADODB 449

18.9 小结 451

第19章 PHP和Ajax技术 452

19.1 Ajax简介 452

19.2 Ajax特性 453

19.3 Xajax简介 453

19.4 Xajax如何工作 453

19.5 异步更新内容 454

19.6 异步处理表单数据 456

19.7 增加自定义功能 457

19.8 解决乱码 457

19.9 Smarty与Xajax 457

19.10 小结 459

第20章 使用PHP编写Shell 460

20.1 简介 460

20.2 PHP CLI Shell脚本 460

20.2.1 CLI与CGI的区别 460

20.2.2 CLI的配置参数 460

20.3 PHP命令行接口(CLI) 461

20.4 CLI命令选项 462

20.5 CLI开发 463

20.6 CLI实际应用 467

20.7 小结 470

第21章 PHP网络开发 471

21.1 Socket技术 471

21.1.1 Socket原理 471

21.1.2 建立一个连接 472

21.1.3 发送一个请求 472

21.1.4 查询Whois信息 473

21.1.5 创建自己的Socket服务器 474

21.2 电子邮件 475

21.2.1 电子邮件简介 475

21.2.2 MTA和SMTP 475

21.2.3 PHP邮件配置 476

21.2.4 电子邮件头 477

21.2.5 MIME 477

21.3 使用mail()函数 479

21.4 使用Socket发送邮件 481

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

21.5.1 使用CURL 482

21.5.2 使用Snoopy类 484

21.5.3 FTP操作 486

21.5.4 PHP与网络协议 488

21.6 小结 488

第22章 PHP文件上传 489

22.1 文件上传简介 489

22.2 处理上传文件 490

22.3 处理多文件上传 494

22.4 突破上传的内存限制 496

22.5 小结 496

第23章 图片与媒体处理 497

23.1 使用GD2扩展库 497

23.1.1 打开一张图片 498

23.1.2 打开任意格式的图片 498

23.1.3 显示和保存图片 499

23.1.4 图片转换 500

23.1.5 创建文字图片 501

23.1.6 绘制图形 502

23.1.7 创建验证码——CAPTCHA 503

23.1.8 缩略图片处理 504

23.1.9 创建水印图片 506

23.2 使用Ming扩展创建Flash 508

23.2.1 创建按钮 508

23.2.2 静态文字 509

23.2.3 动态文字 510

23.2.4 绘制图形 511

23.2.5 使用图片 512

23.3 使用ImageMagick 513

23.3.1 ImageMagick简介 513

23.3.2 安装ImageWand 514

23.3.3 读取图片内容 514

23.3.4 读取图片尺寸 515

23.3.5 图片裁切 515

23.3.6 生成图片缩略图 515

23.3.7 转换图片格式 516

23.3.8 控制图片旋转 516

23.3.9 重新缩放图片 517

23.3.10 加入渲染效果 517

23.3.11 压缩JPEG图片 518

23.4 小结 518

第24章 XML与RSS 519

24.1 XML 519

24.1.1 XML的结构与定义 519

24.1.2 XML与HTML 520

24.2 创建与解析XML文档 521

24.2.1 创建一个XML文档 522

24.2.2 使用SAX解析XML 523

24.2.3 DOM 525

24.2.4 SimpleXML 529

24.3 RSS聚合与解析技术 530

24.3.1 RSS简介 530

24.3.2 RSS 0.9 530

24.3.3 RSS3 1.0 531

24.3.4 RSS 2.0 532

24.3.5 Atom 534

24.4 XML Reader 536

24.5 XML与Smarty 537

24.6 小结 537

第25章 WEB服务与SOAP 538

25.1 WEB服务 538

25.1.1 Web服务概述 538

25.1.2 Web服务的特点 539

25.2 SOAP的消息体 540

25.2.1 SOAP封套(SOAP Envelope) 540

25.2.2 SOAP头(SOAP Header) 540

25.2.3 SOAP错误信息(SOAP Fault) 540

25.2.4 消息体(SOAP Body) 541

25.3 PHP中的SOAP配置 541

25.4 使用PHP开发SOAP应用 542

25.4.1 WSDL 542

25.4.2 建立SOAP服务器端 545

25.4.3 建立SOAP客户端 546

25.5 小结 546

第26章 PHP与WAP技术 547

26.1 WAP技术简介 547

26.2 WAP配置 547

26.3 WAP页面 548

26.3.1 WAP页面简介 548

26.3.2 WAP页面跳转 548

26.3.3 使用WAP制作登录页面 550

26.4 Smarty与WAP 554

26.5 小结 554

第五篇 PHP 5调试、升级与优化第27章 错误与异常处理 556

27.1 概述 556

27.2 错误的类型 556

27.2.1 编程错误 556

27.2.2 未定义符号 557

27.2.3 轻量级错误 559

27.2.4 PHP产生的错误 560

27.2.5 错误与例外处理 562

27.3 小结 567

第28章 升级到PHP5 568

28.1 简介 568

28.2 对象的引用 568

28.3 构造对象 569

28.4 get_class()函数 569

28.5 is_a()函数与instance of 569

28.6 E_STRICT 570

28.6.1 自动建立对象 570

28.6.2 var与public 570

28.7 其他兼容性的问题 570

28.7.1 命令行接口 570

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

28.7.3 函数修正与功能升级 571

28.8 小结 571

第29章 PHP优化技巧 572

29.1 PHP脚本级优化 572

29.1.1 require比require_once快 573

29.1.2 不做重复的车轮 573

29.2 使用代码优化工具 574

29.3 缓存加速 575

29.3.1 使用eAccelerator 575

29.3.2 使用APC 577

29.4 HTTP加速 578

29.4.1 HTTP头信息 578

29.4.2 启用GZIP内容压缩 578

29.5 MySQL性能优化 578

29.5.1 添加索引 578

29.5.2 MySQL缓存与性能调优 579

29.6 MySQL日志维护 581

29.7 数据库外部优化 581

29.7.1 服务器硬件优化 581

29.7.2 磁盘优化 582

29.7.3 操作系统优化 582

29.8 使用反向代理 582

29.9 Apache服务器优化 583

29.10 内容压缩与优化 583

29.11 分布与负载均衡 584

29.12 小结 586

第2部分 实战PHP 5

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

30.1 概述 589

30.2 页面流程 589

30.2.1 用户注册流程 589

30.2.2 用户登录流程 590

30.3 数据库结构 590

30.4 UI与界面 593

30.5 目录结构与文件说明 595

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

31.1 目录结构与文件说明 603

31.2 页面流程 603

31.2.1 创建圈子 603

31.2.2 管理圈子 604

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

31.3 数据库结构 605

31.4 UI与界面 608

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

32.1 概述 610

32.2 页面流程 610

32.3 目录结构与文件说明 612

32.4 UI与界面 613

32.5 数据库结构 617

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

33.1 概述 619

33.2 目录结构与文件说明 619

33.3 页面流程 620

33.4 UI与界面 620

33.5 数据库结构 621

33.6 小结 623

附录A PHP在线资源 624

附录B Zend Core安装 625

附录C PHP扩展开发 631

附录D MySQL字符集与整理 633

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

附录F php.ini配置详解 638

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