当前位置:首页 > 工业技术
PHP深度分析  101个核心技巧、窍门和问题解决方法
PHP深度分析  101个核心技巧、窍门和问题解决方法

PHP深度分析 101个核心技巧、窍门和问题解决方法PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:(美)DAVEYSHAFIKMATTHEWWEIERO`PHINNEYLIGAYATURMELLEHARRYFUECKSBENBALBO著;周广辉,杨建军,王春学等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2010
  • ISBN:9787508469898
  • 页数:352 页
图书介绍:本书作者为活跃在PHP开发一线、具有丰富PHP开发经验的专家,他们把实践中积累的大量经验技巧和有针对性的问题的解决方案,并结合SitePoint论坛上的一些常见问题的解决方案编写了本书。本书采用大量实际案例进行深入分析讲解,非常有利于读者的学习理解。本书基本涵盖了Web开发中常见的问题,读者可以直接进入到关注的主题进行学习。内容涵盖使用PDO访问数据库,字符串,日期和时间,表单、表格和漂亮整洁的URL,文件操作、电子邮件、图像、错误处理、访问控制、缓存、XML和Web service。
《PHP深度分析 101个核心技巧、窍门和问题解决方法》目录

第1章 概述 1

1.1 从何处获得帮助 1

1.2 什么是OOP 6

1.3 如何编写可移植的PHF代码 22

1.4 小结 25

第2章 使用PDO访问数据库 26

2.1 什么是PDO 27

2.2 如何访问数据库 27

2.2.1 解决方案 27

2.2.2 讨论 28

2.3 如何从表中获取数据 30

2.3.1 解决方案 30

2.3.2 讨论 32

2.4 如何解决SQL查询中的错误 33

2.4.1 解决方案 33

2.4.2 讨论 35

2.5 如何向数据库中添加或修改数据 35

2.5.1 解决方案 36

2.5.2 讨论 37

2.6 如何保护Web站点免受SQL注入攻击 37

2.6.1 解决方案 38

2.6.2 讨论 39

2.7 如何创建灵活的SQL语句 39

2.7.1 解决方案 39

2.7.2 讨论 40

2.8 如何获得受影响的行数 41

2.9 如何获得一个新插入行的自动增加字段 43

2.9.1 解决方案 43

2.9.2 讨论 44

2.10 如何搜索表 44

2.10.1 解决方案 44

2.10.2 讨论 45

2.11 如何进行事务处理 45

2.11.1 解决方案 45

2.11.2 讨论 46

2.12 如何利用PDO使用存储过程 46

2.12.1 解决方案 47

2.12.2 讨论 48

2.13 如何备份数据库 48

2.13.1 解决方案 48

2.13.2 讨论 50

2.14 小结 53

第3章 字符串 54

3.1 如何安全地输出字符串 55

3.2 如何保留格式 57

3.3 如何从文本中剥离HTML标记 58

3.3.1 解决方案 58

3.3.2 讨论 58

3.4 如何强制文本在一定数量的字符后折行显示 59

3.5 如何执行高级搜索和替换操作 59

3.6 如何将文本打散为行数组 60

3.6.1 解决方案 61

3.6.2 讨论 61

3.7 如何从文本中移除空白内容 62

3.8 如何输出格式化文本 62

3.9 如何验证提交的数据 63

3.9.1 解决方案 63

3.9.2 讨论 66

3.10 小结 66

第4章 日期和时间 67

4.1 如何使用UNIX时间戳 68

4.1.1 解决方案 68

4.1.2 讨论 68

4.2 如何获得当前日期 69

4.2.1 解决方案 69

4.2.2 讨论 69

4.3 如何知道是星期几 70

4.4 如何获得一个月份的天数 71

4.5 如何创建一个日历 71

4.6 如何在MySQL中存储日期 75

4.6.1 解决方案 76

4.6.2 讨论 76

4.7 如何使用MySQL时间戳 76

4.8 如何使用MySQL执行日期计算 78

4.9 小结 79

第5章 表单、表格和漂亮整洁的URL 80

5.1 如何使用PHP建HTML表单 81

5.2 如何在表格中显示数据 88

5.3 如何在排序表中显示数据 90

5.4 如何创建自定义数据栅格 93

5.5 如何在PHP中建立“漂亮整洁的”URL 97

5.5.1 解决方案 97

5.5.2 讨论 101

5.6 小结 101

第6章 文件操作 102

6.1 如何读取本地文件 102

6.1.1 解决方案 103

6.1.2 讨论 105

6.2 如何使用文件句柄 105

6.2.1 解决方案 105

6.2.2 讨论 107

6.3 如何修改本地文件 107

6.3.1 解决方案 107

6.3.2 讨论 108

6.4 如何访问本地文件的有关信息 108

6.4.1 解决方案 108

6.4.2 讨论 110

6.5 如何使用PHP检查目录 111

6.6 如何在线显示PHP源代码 112

6.6.1 解决方案 112

6.6.2 讨论 113

6.7 如何在文件中存储配置信息 113

6.7.1 解决方案 113

6.7.2 讨论 114

6.8 如何访问远程服务器上的文件 115

6.8.1 解决方案 115

6.8.2 讨论 115

6.9 如何在PHP中使用FTP 116

6.9.1 解决方案 116

6.9.2 讨论 118

6.10 如何使用PHP管理文件下载 118

6.10.1 解决方案 118

6.10.2 讨论 119

6.11 如何使用PHP创建压缩ZIP/TAR文件 119

6.12 如何使用PHP 5中的标准PHP库操作文件 121

6.12.1 解决方案 121

6.12.2 讨论 122

6.13 小结 123

第7章 电子邮件 124

7.1 如何发送一封简单的电子邮件 124

7.1.1 解决方案 124

7.1.2 讨论 125

7.2 如何简化复杂电子邮件的生成 126

7.2.1 解决方案 126

7.2.2 讨论 127

7.3 如何为消息添加附件 127

7.3.1 解决方案 127

7.3.2 讨论 128

7.4 如何发送HTML邮件 129

7.5 如何将消息邮寄至一组人员 130

7.5.1 解决方案 131

7.5.2 讨论 132

7.6 如何使用PHF处理到达的邮件 132

7.6.1 解决方案 132

7.6.2 讨论 133

7.7 如何保护站点免受电子邮件注入攻击 134

7.7.1 解决方案 135

7.7.2 讨论 135

7.8 小结 136

第8章 图像 137

8.1 如何指定正确的图像MIME类型 137

8.2 如何创建缩略图 138

8.3 如何在不拉伸图像的情况下调整其大小 140

8.4 如何构建一个简单的缩略图艺术库 149

8.5 如何从图像中提取EXIF信息 151

8.6 如何为图像增加水印 153

8.7 如何使用PHP显示图表和图形 155

8.7.1 解决方案 155

8.7.2 讨论 161

8.8 如何防止图像盗链 161

8.9 如何创建只能人工验证的图像 163

8.9.1 解决方案 164

8.9.2 讨论 164

8.10 小结 164

第9章 错误处理 166

9.1 PHP报告哪些错误级别 167

9.2 PHP为错误处理提供哪些内置设置 167

9.3 如何触发PHP错误 168

9.3.1 解决方案 168

9.3.2 讨论 168

9.4 如何使用PHP实现自定义错误处理器 169

9.4.1 解决方案 169

9.4.2 讨论 172

9.5 如何记录和报告错误 172

9.6 如何使用PHP异常进行错误处理 173

9.6.1 解决方案 173

9.6.2 讨论 174

9.7 如何创建一个自定义异常类 176

9.7.1 解决方案 176

9.7.2 讨论 177

9.8 如何用PHP实现一个自定义异常处理器 180

9.8.1 解决方案 180

9.8.2 讨论 180

9.9 如何像处理异常一样处理PHP错误 182

9.9.1 解决方案 182

9.9.2 讨论 182

9.10 如何恰当地显示错误和异常 182

9.10.1 解决方案 183

9.10.2 讨论 185

9.11 如何在发生错误时将用户重定向到另一个页面 185

9.11.1 解决方案 185

9.11.2 讨论 187

9.12 小结 187

第10章 访问控制 188

10.1 如何使用HTTP认证 189

10.1.1 解决方案 189

10.1.2 讨论 191

10.2 如何使用会话 193

10.2.1 解决方案 194

10.2.2 讨论 194

10.3 如何创建一个会话类 196

10.4 如何创建一个类来控制对站点部分的访问 197

10.4.1 解决方案 197

10.4.2 讨论 206

10.5 如何建立一个注册系统 207

10.5.1 解决方案 207

10.5.2 讨论 223

10.6 如何处理那些忘记口令的成员 224

10.7 如何让用户更改他们的口令 233

10.7.1 解决方案 233

10.7.2 讨论 238

10.8 如何建立一个权限系统 239

10.8.1 解决方案 239

10.8.2 讨论 249

10.9 如何在数据库中存储会话 249

10.10 小结 257

第11章 缓存 258

11.1 如何阻止网络浏览器缓存页面 259

11.1.1 解决方案 259

11.1.2 讨论 260

11.2 如何控制客户端缓存 260

11.2.1 解决方案 261

11.2.2 讨论 263

11.3 如何在浏览器中检查HTTP头 263

11.4 如何使用IE缓存文件下载 264

11.5 如何将输出缓冲用于服务器端缓存 264

11.5.1 解决方案 265

11.5.2 讨论 266

11.6 如何只缓存页面中不常改变的部件 267

11.6.1 解决方案 267

11.6.2 讨论 270

11.7 如何将PEAR::Cache Lite用于服务器端缓存 270

11.8 Cache Lite支持什么样的配置选项 273

11.9 如何清空Cache Lite缓存 275

11.9.1 解决方案 275

11.9.2 讨论 275

11.10 如何缓存函数调用 275

11.11 本章小结 277

第12章 XML和Web service 278

12.1 什么样的XML技术可用于PHP5 278

12.2 为什么使用PHP的XML扩展,而非PHP字符串函数 279

12.2.1 解决方案 279

12.2.2 讨论 280

12.3 如何解析RSS频道 280

12.3.1 解决方案 280

12.3.2 讨论 284

12.4 如何生成RSS频道 285

12.4.1 解决方案 285

12.4.2 讨论 288

12.5 如何在XML中搜索一个节点或者内容 288

12.5.1 解决方案 289

12.5.2 讨论 289

12.6 如何能够使用XML-RPC Web service 290

12.7 如何实现我自己的XML-RPC Web service 293

12.8 如何能够使用SOAP Web service 297

12.8.1 解决方案 297

12.8.2 讨论 298

12.9 如何能够实现SOAP Web service 298

12.9.1 解决方案 298

12.9.2 讨论 300

12.10 如何能够使用REST服务 300

12.11 如何能够实现REST服务 305

12.11.1 解决方案 305

12.11.2 讨论 306

12.12 本章小结 306

第13章 最佳实践 308

13.1 如何跟踪项目代码的版本 308

13.1.1 解决方案 309

13.1.2 讨论 309

13.2 如何维护单个代码库的多个版本 310

13.2.1 解决方案 310

13.2.2 讨论 311

13.3 如何编写分布式代码 312

13.3.1 解决方案 312

13.3.2 讨论 317

13.4 如何为代码编纂说明文档以作自己或其他人的后续参考 317

13.4.1 解决方案 317

13.4.2 讨论 319

13.5 如何确保代码将来的变动不会破坏当前的功能 321

13.5.1 解决方案 321

13.5.2 讨论 327

13.6 如何判别还有什么尚待测试 328

13.7 我已经复查了一些旧的代码,发现它并不合意,该如何让其变得更好呢 330

13.7.1 解决方案 330

13.7.2 讨论 331

13.8 如何安全地部署代码 331

13.8.1 解决方案 331

13.8.2 讨论 332

13.9 本章小结 332

附录A PHP配置 334

A.1 配置机制 334

A.2 关键的安全性和可移植性设置 335

A.3 包含和执行设置 335

A.4 与错误相关的设置 337

A.5 其他设置 337

附录B 主机提供商检查清单 339

B.1 一般问题 339

B.1.1 主机支持Linux和Apache吗 339

B.1.2 主机提供服务器的SSH访问吗 339

B.1.3 主机是一个分销商吗,或者,他自己维护服务器吗 340

B.1.4 主机“过载”服务器能够到什么程度 340

B.1.5 主机提供商关于从命令行运行脚本和程序的政策是什么 340

B.1.6 主机提供定时访问这种允许安排批量任务的Unix实用程序吗 340

B.2 和PHP相关的问题 340

B.2.1 能够在实际上被分配到的服务器中看到phpinfo的输出吗 340

B.2.2 PHP是作为一个Apache组件安装的吗(而非CGI变种) 340

B.2.3 Apache的settingAllowOverride被设置为Options或者All了吗 341

B.2.4 PHP的安全模式禁用了吗 341

3.2.5 检查主机的升级政策 341

B.2.6 询问安装的PHP扩展列表 341

B.2.7 从命令行中使用PHP吗 341

B.2.8 主机提供商对PHP的理解程度如何 341

附录C 安全检查列表 342

C.1 十大安全脆弱性 342

C.1.1 跨站脚本(XSS) 342

C.1.2 注入攻击 343

C.1.3 恶意文件执行 343

C.1.4 不安全的直接对象引用 344

C.1.5 跨站请求伪造(CSRF) 344

C.1.6 信息泄露和错误处理不当 345

C.1.7 认证和会话管理不完善 345

C.1.8 不安全的密码存储 346

C.1.9 不安全的通信 346

C.1.10 限制URL访问失败 346

附录D 使用PEAR 347

D.1 安装PEAR 348

D.2 PEAR包管理器 350

D.3 手动安装PEAR包 351

D.4 PEAR的供选方案 351

相关图书
作者其它书籍
返回顶部