第1章 面向对象 1
1.1 类 1
1.2 继承和重载 3
1.3 各种“魔术方法” 7
1.3.1 _get和_set方法 7
1.3.2 _isset方法 8
1.3.3 _call方法 9
1.3.4 _toString()方法 9
1.4 复制、克隆和比较对象 10
1.5 接口、迭代器和抽象类 12
1.6 类的作用域与静态成员 16
1.7 总结 18
第2章 异常和引用 19
2.1 异常 19
2.2 引用 24
2.3 总结 27
第3章 PHP在移动设备上的应用 28
3.1 移动设备的差异性 28
3.2 检测设备 29
3.2.1 用户代理 29
3.2.2 内置的PHP支持 29
3.3 侦测移动性能 32
3.3.1 WURFL系统 32
3.3.2 Tera-WURFL 40
3.4 渲染工具 44
3.4.1 WALL 44
3.4.2 图像调整 45
3.4.3 响应性CSS 46
3.5 模拟器和SDK 47
3.5.1 Android开发 47
3.5.2 支持PHP的Adobe Flash Builder 47
3.6 QR码 48
3.7 总结 49
第4章 PHP在社交媒体中的应用 50
4.1 OAuth 50
4.2 Twitter 51
4.2.1 公有的搜索API 51
4.2.2 私有RESTAPI 52
4.2.3 使用Twitter OAuth连接网站的登录 63
4.2.4 更多的API方法和示例 67
4.3 Facebook 70
4.3.1 为退出Facebook添加链接 75
4.3.2 请求额外的权限 76
4.3.3 图像API 77
4.4 总结 79
第5章 前沿 80
5.1 命名空间 80
5.1.1 命名空间和自动加裁 83
5.1.2 命名空间小结 83
5.2 匿名函数(闭包) 84
5.3 Nowdoc 85
5.4 局部goto语句 87
5.5 标准PHP库 88
5.6 Phar扩展 91
5.7 总结 94
第6章 表单设计与管理 95
6.1 数据验证 95
6.2 上传文件/图片 101
6.3 图像转换和缩略图 102
6.4 正则表达式 104
6.5 多语言集成 107
6.6 总结 108
第7章 数据库集成Ⅰ 109
7.1 MongoDB简介 110
7.1.1 MongoDB查询 114
7.1.2 更新MongoDB 118
7.1.3 MongoDB中的聚合 120
7.1.4 MongoDB总结 123
7.2 CouchDB简介 123
7.2.1 使用Futon 124
7.2.2 CouchDB总结 129
7.3 SQLite简介 130
7.4 总结 139
第8章 数据库集成Ⅱ 140
8.1 MySQLi扩展简介 140
8.2 PDO简介 147
8.3 ADOdb简介 151
8.4 使用Sphinx全文检索 155
8.5 总结 163
第9章 数据库集成Ⅲ 164
9.1 Oracle关系型数据库简介 164
9.2 基础知识:连接和执行SQL 166
9.3 数组接口 169
9.4 PL/SQL存储过程及游标 173
9.5 使用LOB类型 176
9.6 再探数据库连接:连接池 180
9.7 数据库和PHP中的字符集 183
9.8 总结 184
第10章 函数库 185
10.1 SimplePie 186
10.2 TCPDF 189
10.3 集成谷歌地图 201
10.4 电子邮件和短信 205
10.5 gChartPHP:Google图表API包 208
10.6 总结 211
第11章 安全 212
11.1 永不信任数据 212
11.1.1 register_globals 212
11.1.2 白名单和黑名单 213
11.1.3 表单数据 214
11.1.4 $COOKIES、$SESSION和$_SERVER 215
11.1.5 Ajax请求 216
11.2 常见的攻击 216
11.2.1 同源策略 216
11.2.2 跨站脚本 217
11.2.3 跨站请求伪造 219
11.3 会话 220
11.4 预防SQL注入 221
11.5 过滤器扩展 222
11.6 php.ini和服务器设置 225
11.6.1 服务器环境 225
11.6.2 强化php.ini 226
11.7 密码算法 227
11.8 总结 228
第12章 使用Zend Studio for Eclipse、Bugzilla、Mylyn和Subversion进行敏捷开发 229
12.1 敏捷开发的原则 229
12.2 项目的敏捷开发 230
12.3 Bugzilla简介 231
12.4 Eclipse下的Mylyn 233
12.5 Eclipse中组合Bugzilla和Mylyn 235
12.6 延伸功能的优点 239
12.7 总结 240
第13章 重构、单元测试和持续集成 241
13.1 重构 241
13.1.1 小的重构 242
13.1.2 更大的遗留代码的示例 245
13.2 单元测试 259
13.3 持续集成 274
13.3.1 持续集成服务器 275
13.3.2 版本控制 275
13.3.3 静态分析 276
13.3.4 构建自动化 277
13.3.5 Jenkins服务器的安装 278
13.4 总结 281
第14章 XML 282
14.1 XML入门 282
14.2 模式(schema) 283
14.3 SimpleXML 284
14.3.1 从字符串解析XML 284
14.3.2 从文件解析XML 285
14.3.3 命名空间 290
14.3.4 RSS 292
14.3.5 使用SimpleXML生成XML 294
14.4 DOMDocument 299
14.5 XMLReader和XMLWriter 301
14.6 总结 303
第15章 JSON和Ajax 304
15.1 JSON 305
15.2 Ajax 311
15.2.1 传统的Web模型 311
15.2.2 Ajax Web模型 312
15.2.3 异步事件与同步事件 313
15.2.4 XMLHttpRequest对象 314
15.2.5 使用XMLHttpRequest 316
15.2.6 高级的JavaScript API 321
15.2.7 jQuery的例子 321
15.2.8 使用Ajax向PHP脚本发送数据 326
15.3 一个简单的图形程序 328
15.4 总结 336
第16章 结束语 337
16.1 资源 337
16.1.1 www.php.net 337
16.1.2 www.zend.com 338
16.1.3 devzone.zend.com 338
16.1.4 PHP | Architect Magazine:www.phparch.com 339
16.2 会议 339
16.3 PHP认证 340
16.4 总结 341
附录 正则表达式 342