《PHP经典实例》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:斯克拉,切贝特伯格著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2015
  • ISBN:9787512376465
  • 页数:750 页
图书介绍:想要掌握PHP编程技术?或者是不是想知道如何完成一个特定的任务?一定要先看看这本书。书中介绍了专门为PHP 5.4和5.5修订的350个经典技巧,提供了丰富的示例代码。特别是对生成动态Web内容的解决方案做了全面更新,从使用基本数据类型到查询数据库,从调用RESTful API到测试和保护网站安全都有涵盖。各个技巧都提供了示例代码,可以免费使用,另外还讨论了如何解决问题以及这些解决方案为什么可行。

前言 1

第1章 字符串 8

1.0 引言 8

1.1 访问子串 12

1.2 抽取子串 13

1.3 替换子串 14

1.4 逐字节处理字符串 16

1.5 按单词或字节反转字符串 18

1.6 生成随机字符串 19

1.7 扩展和压缩制表符 20

1.8 控制大小写 22

1.9 字符串中的内插函数和表达式 24

1.10 去除字符串首尾的空格 25

1.11 生成逗号分隔数据 26

1.12 解析逗号分隔数据 28

1.13 生成固定宽度字段数据记录 29

1.14 解析固定宽度字段数据记录 30

1.15 分解字符串 33

1.16 使文本在指定行长度自动换行 35

1.17 字符串中存储二进制数据 36

1.18 程序:可下载的CSV文件 39

第2章 数字 42

2.0 引言 42

2.1 检查变量是否包含一个合法数字 43

2.2 比较浮点数 44

2.3 浮点数舍入 45

2.4 处理一系列整数 47

2.5 在指定范围内生成随机数 49

2.6 生成可预测的随机数 50

2.7 生成偏随机数 51

2.8 取对数 53

2.9 计算指数 53

2.10 格式化数字 54

2.11 格式化货币值 56

2.12 正确输出复数 57

2.13 讨论三角函数 58

2.14 对度数而不是弧度数完成三角运算 59

2.15 处理非常大或非常小的数 60

2.16 转换进制 62

2.17 使用非十进制数计算 63

2.18 找出两个位置之间的距离 65

第3章 日期和时间 67

3.0 引言 67

3.1 查找当前日期和时间 69

3.2 将时间和日期部分转换为纪元时间戳 72

3.3 将纪元时间戳转换为时间和日期部分 74

3.4 以指定格式输出日期或时间 74

3.5 计算两个日期之差 78

3.6 查找一周、月或年中某一天 80

3.7 验证日期 82

3.8 从字符串解析日期和时间 83

3.9 日期加减 86

3.10 使用时区和日光节省时间来计算时间 87

3.11 生成高精度时间 88

3.12 生成时间范围 90

3.13 使用非公历日历 91

3.14 程序:日历 94

第4章 数组 99

4.0 引言 99

4.1 指定并非从元素0开始的数组 102

4.2 数组中每个键存储多个元素 103

4.3 数组初始化为一个整数范围 105

4.4 迭代处理数组 106

4.5 从数组删除元素 108

4.6 改变数组大小 110

4.7 将数组追加到另一个数组 113

4.8 将数组转换为字符串 114

4.9 带逗号打印数组 116

4.10 检查一个键是否在数组中 117

4.11 检查一个元素是否在数组中 118

4.12 查找一个值在数组中的位置 119

4.13 查找通过某个测试的元素 120

4.14 查找数组中最大值或最小值元素 122

4.15 反转数组 123

4.16 对数组排序 124

4.17 根据一个可计算字段对数组排序 125

4.18 多个数组的排序 127

4.19 使用方法而不是函数对数组排序 129

4.20 随机调整数组 130

4.21 删除数组中重复的元素 130

4.22 对数组中的各个元素应用一个函数 131

4.23 查找两个数组的并集、交集或差集 134

4.24 高效迭代处理大型数据集 136

4.25 使用数组语法访问对象 138

第5章 变量 142

5.0 引言 142

5.1 避免混淆==和= 144

5.2 建立一个默认值 145

5.3 交换值而不使用临时变量 146

5.4 创建动态变量名 147

5.5 跨函数调用持久存储局部变量的值 148

5.6 进程间共享变量 150

5.7 将复杂数据类型封装在字符串中 156

5.8 变量内容转储为字符串 158

第6章 函数 163

6.0 引言 163

6.1 访问函数参数 164

6.2 为函数参数设置默认值 165

6.3 按引用传递值 167

6.4 使用命名参数 168

6.5 强制函数参数的类型 169

6.6 创建参数个数可变的函数 170

6.7 按引用返回值 173

6.8 返回多个值 175

6.9 跳过所选的返回值 176

6.10 返回失败 177

6.11 调用可变函数 178

6.12 在函数中访问全局变量 181

6.13 创建动态函数 182

第7章 类和对象 184

7.0 引言 184

7.1 实例化对象 188

7.2 定义对象构造函数 189

7.3 定义对象析构函数 190

7.4 实现访问控制 191

7.5 防止修改类和方法 194

7.6 定义对象字符串化 195

7.7 要求多个类有类似的行为 196

7.8 创建抽象基类 200

7.9 对象引用赋值 202

7.10 克隆对象 203

7.11 覆盖属性访问 205

7.12 在另一个方法返回的对象上调用方法 209

7.13 聚合对象 211

7.14 访问被覆盖的方法 215

7.15 动态创建方法 216

7.16 使用方法多态 217

7.17 定义类常量 219

7.18 定义静态属性和方法 221

7.19 控制对象串行化 224

7.20 对象自省 226

7.21 检查对象是否是一个特定类的实例 230

7.22 对象实例化时自动加载类文件 232

7.23 动态实例化对象 234

7.24 程序:whereis 235

第8章 Web基础 238

8.0 引言 238

8.1 设置cookie 239

8.2 读取cookie值 241

8.3 删除cookie 241

8.4 构建查询字符串 242

8.5 读取POST请求体 243

8.6 使用HTTP基本或摘要认证 244

8.7 使用cookie认证 248

8.8 读取HTTP首部 251

8.9 写HTTP首部 252

8.10 发送一个特定的HTTP状态码 253

8.11 重定向到不同的位置 254

8.12 浏览器刷新输出 255

8.13 浏览器缓冲输出 256

8.14 压缩Web输出 257

8.15 读取环境变量 258

8.16 设置环境变量 259

8.17 Apache内部通信 260

8.18 将移动浏览器重定向到专为移动设备优化的网站 261

8.19 程序:网站帐户激活(撤销)系统 262

8.20 程序:Tiny Wiki 264

8.21 程序:HTTP Range 267

第9章 表单 276

9.0 引言 276

9.1 处理表单输入 278

9.2 验证表单输入:必填域 280

9.3 验证表单输入:数字 282

9.4 验证表单输入:email地址 283

9.5 验证表单输入:下拉菜单 284

9.6 验证表单输入:单选钮 286

9.7 验证表单输入:复选框 287

9.8 验证表单输入:日期和时间 289

9.9 验证表单输入:信用卡 290

9.10 防止跨站点脚本攻击 291

9.11 处理上传文件 292

9.12 处理多页面表单 295

9.13 重新显示表单并提供内联错误消息 297

9.14 防止多次提交相同的表单 299

9.15 防止全局变量注入 301

9.16 处理变量名中包含点号的远程变量 303

9.17 使用有多个选项的表单元素 304

9.18 根据当前日期创建下拉菜单 305

第10章 数据库访问 307

10.0 引言 307

10.1 使用DBM数据库 309

10.2 使用SQLite数据库 313

10.3 连接SQL数据库 314

10.4 查询SQL数据库 316

10.5 不用循环获取记录行 319

10.6 修改SQL数据库中的数据 319

10.7 高效地重复执行查询 321

10.8 查看查询返回的行数 324

10.9 转义引号 325

10.10 记录调试信息和错误 326

10.11 创建唯一标识符 328

10.12 编程建立查询 330

10.13 为一系列记录建立分页链接 335

10.14 缓存查询和结果 338

10.15 在程序中任意位置访问数据库连接 340

10.16 程序:存储线索留言板 342

10.17 使用Redis 349

第11章 会话和数据持久存储 351

11.0 引言 351

11.1 使用会话跟踪 352

11.2 防止会话劫持 354

11.3 防止会话固定攻击 355

11.4 在Memcached中存储会话 356

11.5 在数据库中存储会话 357

11.6 共享内存中存储任意数据 360

11.7 在摘要表中缓存计算结果 363

第12章 XML 365

12.0 引言 365

12.1 生成XML作为字符串 368

12.2 用DOM生成XML 369

12.3 解析基本XML文档 372

12.4 解析复杂XML文档 375

12.5 解析大型XML文档 377

12.6 使用XPath抽取信息 383

12.7 用XSLT转换XML 386

12.8 从PHP设置XSLT参数 388

12.9 从XSLT样式表调用PHP函数 390

12.10 验证XML文档 393

12.11 处理内容编码 396

12.12 读取RSS和Atom提要 397

12.13 写RSS提要 400

12.14 写Atom提要 402

第13章 Web自动化 407

13.0 引言 407

13.1 标记Web页面 408

13.2 清理有问题或非标准的HTML 410

13.3 从HTML文件抽取链接 413

13.4 纯文本转换为HTML 416

13.5 HTML转换为纯文本 417

13.6 删除HTML和PHP标记 418

13.7 响应Ajax请求 421

13.8 与JavaScript集成 423

13.9 程序:查找过时链接 426

13.10 程序:查找更新链接 428

第14章 使用RESTful API 432

14.0 引言 432

14.1 用GET方法获取URL 433

14.2 用POST方法和表单数据获取URL 437

14.3 用任意方法和POST体获取URL 439

14.4 用Cookie获取URL 441

14.5 使用任意首部获取URL 443

14.6 使用超时获取URL 444

14.7 获取HTTPS URL 446

14.8 调试原始HTTP交换 447

14.9 建立OAuth 1.0请求 451

14.10 建立OAuth 2.0请求 453

第15章 提供RESTful API 457

15.0 引言 457

15.1 提供并路由到一个资源 459

15.2 提供简洁资源路径 463

15.3 提供要读取的资源 464

15.4 创建资源 466

15.5 编辑资源 471

15.6 删除资源 472

15.7 指示错误和失败 474

15.8 支持多个格式 476

第16章 Internet服务 479

16.0 引言 479

16.1 发送邮件 480

16.2 发送MIME邮件 482

16.3 用IMAP或POP3读取邮件 483

16.4 用FTP获取和放置文件 487

16.5 用LDAP查找地址 490

16.6 使用LDAP完成用户认证 492

16.7 完成DNS查找 494

16.8 检查主机是否活动 496

16.9 获得域名的有关信息 498

第17章 图形 501

17.0 引言 501

17.1 绘制直线、矩形和多边形 504

17.2 绘制弧形、椭圆和圆 507

17.3 用花纹线条绘制 509

17.4 绘制文本 510

17.5 绘制居中文本 512

17.6 建立动态图像 515

17.7 获取和设置透明颜色 518

17.8 覆盖水印 519

17.9 创建缩略图 521

17.10 读取EXIF数据 525

17.11 安全地提供图像 526

17.12 程序:由投票结果生成直方图 528

第18章 安全和加密 532

18.0 引言 532

18.1 防止会话固定攻击 533

18.2 防范表单欺骗 534

18.3 确保过滤输入 535

18.4 避免跨站点脚本攻击 536

18.5 消除SQL注入 537

18.6 不在站点文件中存放密码 538

18.7 存储密码 539

18.8 处理丢失的密码 542

18.9 用散列验证数据 544

18.10 加密和解密数据 546

18.11 在文件或数据库中存储加密数据 548

18.12 与其他网站共享加密数据 551

18.13 检测SSL 553

18.14 用GPG加密email 554

第19章 国际化和本地化 556

19.0 引言 556

19.1 确定用户的本地化环境 558

19.2 本地化文本消息 559

19.3 本地化日期和时间 562

19.4 本地化数字 566

19.5 本地化货币值 569

19.6 本地化图像 570

19.7 本地化包含的文件 572

19.8 按本地化环境特定的顺序排序 573

19.9 管理本地化资源 574

19.10 设置发出数据的字符编码 576

19.11 设置接收数据的字符编码 576

19.12 管理UTF-8文本 577

第20章 错误处理 582

20.0 引言 582

20.1 查找和定位解析错误 583

20.2 创建你自己的异常类 585

20.3 打印栈轨迹 588

20.4 读取配置变量 590

20.5 设置配置变量 592

20.6 对用户隐藏错误消息 593

20.7 控制错误处理 594

20.8 使用定制错误处理程序 596

20.9 记录错误 598

20.10 消除“首部已发送”错误 599

20.11 记录调试信息 600

第21章 软件工程 603

21.0 引言 603

21.1 使用调试器扩展 603

21.2 编写单元测试 606

21.3 编写单元测试套件 608

21.4 对Web页面应用单元测试 610

21.5 建立测试环境 611

21.6 使用内置Web服务器 612

第22章 性能调优 615

22.0 引言 615

22.1 使用加速器 616

22.2 计算函数执行时间 617

22.3 按函数计算程序执行时间 618

22.4 按语句计算程序执行时间 620

22.5 按节计算程序执行时间 622

22.6 使用调试器扩展测试性能 624

22.7 对网站进行压力测试 628

22.8 避免正则表达式 629

第23章 正则表达式 631

23.0 引言 631

23.1 ereg切换到preg 635

23.2 匹配单词 637

23.3 查找匹配的第n次出现 638

23.4 选择贪婪或非贪婪匹配 640

23.5 查找文件中与一个模式匹配的所有行 642

23.6 捕获HTML标记中的文本 643

23.7 阻止小括号捕获文本 644

23.8 转义正则表达式中的特殊字符 646

23.9 利用模式分隔符读取记录 647

23.10 正则表达式中使用PHP函数 648

第24章 文件 651

24.0 引言 651

24.1 创建或打开一个本地文件 655

24.2 创建临时文件 656

24.3 打开远程文件 657

24.4 读取标准输入 658

24.5 将文件读入字符串 659

24.6 统计一个文件中的行、段落或记录数 660

24.7 处理文件中的每一个单词 663

24.8 从文件中随机选择一行 665

24.9 随机重排文件中的所有行 665

24.10 处理变长文本字段 666

24.11 读取配置文件 668

24.12 原地修改文件而无需临时文件 670

24.13 刷新输出到文件 671

24.14 写标准输出 672

24.15 同时写多个文件句柄 673

24.16 转义Shell元字符 674

24.17 向程序传递输入 675

24.18 从程序读标准输出 676

24.19 从程序读标准错误输出 678

24.20 锁定文件 679

24.21 读/写定制文件类型 681

24.22 读/写压缩文件 686

第25章 目录 688

25.0 引言 688

25.1 获得和设置文件时间戳 691

25.2 获得文件信息 692

25.3 改变文件权限或所有者 693

25.4 分解文件名 694

25.5 删除文件 696

25.6 复制或移动文件 696

25.7 处理目录中的所有文件 697

25.8 获得与模式匹配的文件名列表 699

25.9 递归处理目录中的所有文件 700

25.10 创建新目录 701

25.11 删除一个目录及其内容 701

25.12 程序:Web服务器目录列表 702

25.13 程序:网站搜索 706

第26章 命令行PHP 710

26.0 引言 710

26.1 解析程序参数 712

26.2 用getopt解析程序参数 713

26.3 从键盘读取 715

26.4 运行输入文件每一行上的PHP代码 717

26.5 读取密码 719

26.6 显示彩色控制台输出 721

26.7 程序:DOM浏览器 722

第27章 包 727

27.0 引言 727

27.1 定义和安装Composer依赖库 729

27.2 查找Composer包 731

27.3 安装Composer包 733

27.4 使用PEAR安装程序 736

27.5 查找PEAR包 739

27.6 查找包的有关信息 740

27.7 安装PEAR包 742

27.8 升级PEAR包 744

27.9 卸载PEAR包 745

27.10 安装PECL包 746