《PHP 4宝典》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Tim Converse,(美)Joyce Park著;马云,耿睿等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505365266
  • 页数:502 页
图书介绍:PHP是最流行的web脚本语言之一,功能强大并内置了访问数据库的能力。它能够作为Apache Web服务器的模块执行,因此执行效率要高于普通CGI程序,再加上它自由软件的身份,更成为许多Web程序员的首选脚本语言。 全书是PHP 4的权威宝典,共分三部分,第一部分讲解PHP基础知识、编程风格以及常见问题的解答。第二部分关注数据库应用,讲解了PHP数据库编程基本知识、MySQL数据库等,给出了

前言 1

第1部分 PHP基础知识 5

第1章 为什么使用PHP 6

1.1 什么是PHP 6

1.2 PHP的历史 7

1.3 PHP受欢迎的原因 7

1.3.1 PHP是免费的 7

1.3.2 PHP易学易用 9

1.3.3 PHP是内嵌的 10

1.3.4 PHP的交叉平台特性 11

1.3.5 PHP并不基于标记 12

1.3.6 PHP的稳定性 12

1.3.7 PHP非常迅速 12

1.3.8 PHP是开放的 13

1.3.10 PHP十分流行并在逐渐成长 14

1.3.9 PHP的合作能力很强 14

1.3.11 PHP不属于任何人 15

1.3.12 PHP团体 16

1.4 小结 16

第2章 服务器端Web脚本编制 17

2.1 静态HTML 17

2.2 客户端技术 20

2.3 服务器端脚本编制 23

2.4 服务器端脚本擅长之处 28

2.5 小结 29

第3章 PHP起步 30

3.1 虚拟主机和DIY的对比 30

3.1.1 ISP选项 30

3.1.2 选择自建主机的各项细则 32

3.1.3 折衷解决方案 33

3.2 安装PHP 33

3.2.1 开始之前的准备 33

3.2.2 安装过程 35

3.2.3 开发工具 39

3.3 小结 40

第4章 在HTML中添加PHP 41

4.1 HTML是兼容PHP的 41

4.2 从HTML转入PHP模式 41

4.2.1 规范的PHP标记 41

4.2.2 简短开始(SGML风格)标记 42

4.2.3 Hello World 43

4.2.4 进出PHP模式 43

4.2.5 包含文件 44

4.3 小结 45

第5章 语法、变量和输出 46

5.1 PHP的宽松风格 46

5.2 HTML不是PHP 46

5.3.1 PHP对空白不敏感 47

5.3.2 PHP有时区分大小写 47

5.3 PHP的C风格语法 47

5.3.3 语句是以分号结尾的表达式 48

5.3.4 花括号的使用 50

5.4 注释 50

5.4.1 C风格的多行注释 51

5.4.2 单行注释:#和// 51

5.5 变量 51

5.5.4 变量重新赋值 52

5.5.5 未赋值的变量 52

5.5.2 声明变量 52

5.5.3 变量赋值 52

5.5.1 PHP变量是Perl风格的 52

5.5.6 变量作用域 54

5.5.7 模式的切换 54

5.6 输出 55

5.6.1 回显和打印 55

5.6.2 变量和字符串 56

5.7 小结 57

6.1 首要原则是放松 58

6.1.1 没有变量类型声明 58

6.1.2 自动类型转换 58

第6章 PHP中的类型 58

6.1.3 根据上下文分配的类型 59

6.2 类型小结 59

6.3 简单类型 59

6.3.1 整型 60

6.3.2 双精度型 60

6.3.3 布尔型 62

6.3.4 示例 62

6.3.5 字符串型 63

6.4 数组 66

6.4.1 数组实现 67

6.4.2 字符串作为数组索引 67

6.5.1 OOP概述 68

6.5 对象 68

6.4.3 结构类型 68

6.4.4 其他数组特性 68

6.5.2 PHP的OOP 69

6.5.3 在PHP中定义类 69

6.5.4 创建对象 70

6.6 类型测试 70

6.7 赋值和强制转换 71

6.7.1 类型转换行为 71

6.7.2 显式转换 71

6.7.3 转换示例 72

6.7.4 其他有用的类型转换 73

6.7.5 整数溢出 74

6.7.6 补充内容:查找最大整数 75

6.8 小结 75

7.1.1 布尔常量 76

7.1 布尔表达式 76

第7章 控制 76

7.1.2 逻辑运算符 77

7.1.3 比较运算符 78

7.1.4 三元运算符 80

7.2 分支结构 81

7.2.1 if-else结构 81

7.2.2 switch 84

7.3 循环 85

7.3.1 有界循环和无界循环 85

7.3.2 while 86

7.3.3 do-while 86

7.3.4 for 87

7.3.5 循环示例 88

7.3.6 break和continue 91

7.3.7 关于无限循环的注意事项 92

7.4 可替换的控制语法 92

7.5 终止执行 93

7.6 小结 94

第8章 使用和定义函数 96

8.1 使用函数 96

8.1.1 返回值与副作用 96

8.2 函数文档 97

8.2.1 文档的首部 98

8.2.2 查找函数文档 98

8.3 定义自己的函数 98

8.3.1 什么是函数 99

8.3.2 函数定义语法 99

8.3.3 函数定义示例 99

8.3.4 形参与实参的对比 101

8.3.5 参数数目不匹配 101

8.4 函数和变量作用域 101

8.4.1 全局变量与局部变量 102

8.4.2 静态变量 103

8.5.1 include和require 104

8.5 函数作用域 104

8.5.2 递归 105

8.6 高级函数技巧 106

8.6.1 可变的参数个数 106

8.6.2按值调用和按引用调用 109

8.6.3 按引用调用 110

8.6.4 可变函数名 111

8.6.5 进一步扩展的示例 112

8.7 小结 115

第9章 字符串和字符串函数 117

9.1 PHP中的字符串 117

9.1.1 字符和字符串索引 118

9.1.2 字符串运算符 118

9.1.3 连接和赋值 118

9.2.1 检查字符串 119

9.2 字符串函数 119

9.2.2 查找字符和子串 120

9.2.3 比较和搜索 121

9.2.4 搜索 121

9.2.5 选定子串 122

9.2.6 字符串清理函数 124

9.2.7 字符串替换 124

9.2.8 字符串集合和字符集合 126

9.2.9 解析函数 128

9.2.10 大小写函数 130

9.2.11 转义函数 131

9.2.12 打印和输出 132

9.3 高级字符串特性 134

9.3.1 正则表达式 134

9.3.2 HTML函数 136

9.4 小结 137

10.1 数字类型 138

10.2 数学运算符 138

第10章 数学运算 138

10.2.1 算术运算符 139

10.2.2 算术运算符和类型 139

10.2.3 增1运算符 140

10.2.4 赋值运算符 140

10.2.5 比较运算符 141

10.2.6 优先级和括号 142

10.3 简单数学函数 142

10.4 基数转换 143

10.5 指数和对数 145

10.6 三角学 146

10.7 随机数 149

10.7.1 给发生器指定种子 150

10.7.2 示例:进行随机选择 151

10.8 任意精度(BC) 153

10.8.1 任意精度示例 153

10.8.2 把代码转化为任意精度 154

10.9 小结 156

第11章 数组和数组函数 158

11.1 数组的用法 158

11.2 PHP数组是什么 158

11.3 创建数组 160

11.3.1 直接赋值 160

11.3.2 array()结构 160

11.3.3 使用array()指定索引 161

11.4.1 用索引进行检索 162

11.4.2 list( )结构 162

11.3.4 返回数组的函数 162

11.4 检索值 162

11.5 多维数组 163

11.6 检查数组 164

11.7 从数组中删除元素 165

11.8 遍历 165

11.8.1 使用遍历函数 166

11.8.2 用current( )和next( )进行遍历 167

11.8.3 用reset( )重新开始 168

11.8.4 使用end( )和prev( )颠倒次序 169

11.8.5 使用key( )提取键 169

11.8.6 空值和each( )函数 170

11.8.7 使用array_walk( ) 171

11.9 堆栈和队列 172

11.10 数组的变换 174

11.10.1 检索键和值 174

11.10.2 翻转、颠倒、混乱 175

11.11 变量和数组之间的变换函数 177

11.12 排序 178

11.13 小结 179

第12章 页面间的信息传递 180

12.1 HTTP是无状态的 180

12.2 GET参数 181

12.3 GET风格的URL的更好用法 183

12.4 POST参数 185

12.5 在PHP中处理变量 187

12.6 小结 189

第13章 文件系统和系统函数 190

13.1 文件读写函数 190

13.1.1 打开文件 191

13.1.2 读文件 192

13.1.3 写文件 193

13.1.4 关闭文件 194

13.2 文件系统和目录函数 194

13.2.1 feof 196

13.2.2 file_exists 196

13.2.3 filesize 196

13.3 网络函数 196

13.3.1 syslog函数 196

13.3.3 套接字函数 197

13.4 日期和时间函数 197

13.3.2 DNS函数 197

13.4.1 如果不知道日期或时间 198

13.4.2 如果已经确定了日期/时间/时间戳 198

13.5 历法转换函数 199

13.6 小结 200

第14章 PHP风格 201

14.1 风格的运用 201

14.2 易读性 201

14.2.1 注释 206

14.2.2 文件和变量名 207

14.3 可维护性 209

14.3.1 避免魔术数字 209

14.3.2 函数 209

14.3.3 包含文件 210

14.3.4 对象包装器 212

14.4 强健性 212

14.5.1 效率:只是算法问题 213

14.5 简明性和效率 213

14.4.1 不可使用的服务 213

14.4.2 不是预期的变量类型 213

14.5.2 效率优化技巧 214

14.5.3 简明性:最后阶段 215

14.5.4 简明性提示 215

14.6 使用HTML还是使用PHP模式 218

14.7 从设计中分离代码 224

14.7.1 函数 224

14.7.2 PHP中的层叠式样式表 224

14.7.3 模板和页面一致性 225

14.8 小结 226

第15章 基本的PHP错误 227

15.1 和安装有关的问题 227

15.1.1 现象:文件内容显示在浏览器窗口上 227

15.1.2 现象:HTTP不显示文本或浏览器提示保存文件或访问外部文件库 227

15.2.1 现象:完全为空的页面 228

15.2.2 现象:不完整或不是预期的页面 228

15.1.3 现象:没有找到服务器或主机/页面无法显示 228

15.2 显示问题 228

15.2.3 现象:PHP代码显示在Web浏览器中 230

15.3 载入页面失败 231

15.3.1 现象:不能找到文件 231

15.3.2 现象:打开被包含的文件失败 232

15.4 解析错误 232

15.4.1 现象:解析错误消息 232

15.4.2 缺少分号 232

15.4.3 没有$号 233

15.4.4 模式问题 233

15.4.5 被转义的引号 234

15.5.1 现象:HTTP error 403 235

15.6.1 现象:有关包含文件的警告 235

15.6 缺少包含文件 235

15.4.6 其他解析错误的原因 235

15.5 文件权限 235

15.7 未被设定的变量 236

15.7.1 现象:变量没有出现在打印字符串中 236

15.7.2 现象:数字变量出乎意料为0 236

15.7.3 未被设定的变量有何作用 236

15.7.4 大小写问题 237

15.7.5 范围问题 237

15.8.3 现象:不能重新声明my_function( ) 238

15.8.4 现象:错误的参数数目 238

15.8 函数问题 238

15.8.2 现象:调用未定义的函数 238

15.8.1 现象:调用未定义的函数my_function( ) 238

15.9 数学问题 239

15.9.1 现象:被0除 239

15.9.2 现象:不是预期的运算结果 239

15.9.3 现象:NaN(或NAN) 239

15.11 小结 240

15.10 超时 240

第2部分 PHP和数据库 243

第16章 为PHP选择适合的数据库 244

16.1 为什么需要使用数据库 244

16.1.1 避免冗余 244

16.1.2 避免笨拙的编程 245

16.1.3 搜索 245

16.1.4 安全问题 245

16.1.5 N层体系结构 245

16.2 选择数据库 246

16.2.1 不必选择 246

16.2.2 平面文件、关系数据库、对象关系数据库 246

16.2.3 ODBC/JDBC与本地API 247

16.2.4 可交换的数据库 247

16.3.4 线程和锁定 248

16.3.3 复杂联结 248

16.3.2 子查询 248

16.3.1 图形用户界面 248

16.3 展望高级性能 248

16.3.5 事务 249

16.3.6 过程与触发器 249

16.3.7 外键和完整性约束 249

16.3.8 数据库的复制 249

16.4 支持PHP的数据库 250

16.4.1 本书重点:MySQL 250

16.5 小结 251

第17章 SQL指南 252

17.1 SQL标准 252

17.2 SQL骨干 253

17.2.1 SELECT 253

17.2.2 INSERT 255

17.2.3 UPDATE 256

17.2.4 DELETE 256

17.3 数据库设计 256

17.4 数据库连接 258

17.5 权限与安全性 259

17.5.1 设置权限 259

17.5.2 在不同的位置存储数据库口令 260

17.5.3 使用PHP表单检查口令 260

17.5.4 学会备份 261

17.6 小结 261

第18章 PHP/MySQL函数 263

18.1 连接MySQL 263

18.2 建立MySQL查询 264

18.3 提取数据集 265

18.4 获取有关数据的数据 267

18.5 多个连接 268

18.6 建立错误检查 269

18.7 用PHP创建MySQL数据库 269

18.8 MySQL函数 270

18.9 小结 271

第19章 在表中显示查询 273

19.1 HTML表和数据库表 273

19.1.1 一对一映射 274

19.1.2 例子:单表显示程序 274

19.1.3 范例表 276

19.1.4 改善显示程序 277

19.2 复杂映射 279

19.2.1 多重查询与复杂打印 279

19.2.2 多重查询的例子 280

19.2.3 复杂的打印例子 281

19.3 创建范例表 283

19.4 小结 285

第20章 建立由查询语句得到的表单 286

20.1 HTML表单 286

20.2 自提交 286

20.3 处理表单提交 288

20.4.1 TEXT和TEXTAREA 290

20.4 依赖于变量的表单 290

20.4.2 CHECKBOX 292

20.4.3 RADIO 293

20.4.4 SELECT 294

20.5 依赖于查询的表单 295

20.6 小结 297

21.1 为什么需要Weblog 298

21.2 最简单的Weblog 298

第21章 Weblog 298

21.3 通过HTTP输入信息 302

21.4 添加数据库连接 304

21.5 潜在的附加功能 311

21.6 小结 311

第22章 用户评估系统 312

22.1 系统做什么 312

22.1.1 系统的目标 312

22.2 收集选票 313

22.1.3 数据库支持 313

22.1.2 结构 313

22.2.1 DisplayRatings( ) 317

22.2.2 GetFeedback( ) 317

22.2.3 HandleRatings( ) 317

22.3 显示总体结果 318

22.3.1 乱投的选票和规模 322

22.4 小结 322

23.1.1 不好的例子:每条语句有一个连接 323

23.1 减少连接次数和重用连接 323

第23章 PHP/数据库的效率和风格 323

23.1.2 多个结果不需要多个连接 324

23.1.3 永久的连接 325

23.2 使用数据库提供的功能 325

23.2.1 很可能比自己的方案快 325

23.2.2 一个坏例子:用了循环却没有限制它 326

23.2.3 创建日期和时间字段 327

23.2.4 寻找最后插入的记录 327

23.3 小结 329

24.1 没有连接 330

第24章 PHP/数据库常见问题 330

24.2 权限问题 332

24.3 未转义的引号 332

24.4 中断的SQL语句 334

24.4.1 拼写错误的名称 336

24.4.2 逗号引起的错误 336

24.4.3 未被引号引起来的字符串参数 336

24.4.4 未被设定的变量 337

24.5 数据太少或太多 337

24.6 清楚的检查 338

24.7 小结 338

第3部分 高级技术 339

25.1 什么是会话 340

25.1.1 问题是什么 340

第25章 会话 340

25.1.2 为什么关注这一点 341

25.2 相关内容 341

25.2.1 IP地址 341

25.2.2 隐藏变量 341

25.2.3 cookie 342

25.3 会话在PHP中是如何工作的 343

25.3.2 在会话中注册变量 344

25.3.1 使PHP知晓用户会话 344

25.3.3 数据的实际存储位置 345

25.4 会话函数 346

25.5 会话代码示例 347

25.6 配置问题 350

25.7 常见问题和解决方案 351

25.8 小结 351

第26章 cookie和HTTP 352

26.1 cookie 352

26.1.2 示例 353

26.1.1 setcookie()函数 353

26.1.3 删除cookie 355

26.1.4 读取cookie 355

26.1.5 GET、POST和cookie变量 356

26.1.6 cookie的缺陷 359

26.2 发送HTTP header 360

26.2.1 重定向示例 361

26.2.2 HTTP认证示例 361

26.3 小结 362

26.2.3 有关header的常见问题 362

第27章 PHP和JavaScript 364

27.1 用PHP输出JavaScript 364

27.1.1 关于对象的冲突 365

27.1.2 PHP不关心其输出 365

27.1.3 在何处使用JavaScript 366

27.2 PHP作为JavaScript的后备 366

27.3 静态JavaScript与动态JavaScript 368

27.3.1 动态生成表单 369

27.3.2 将数据从JavaScript传回PHP 373

27.4 小结 376

第28章 电子邮件 377

28.1 了解E-mail 377

28.1.1 E-mail系统模型 377

28.2 用PHP接收E-mail 381

28.3.1 Windows配置 382

28.3 用PHP发送E-mail 382

28.2.3 添加补充内容 382

28.2.2 在指导下进行开发 382

28.2.1 拒绝开发 382

28.3.2 UNIX配置 383

28.3.3 和邮件有关的函数 383

28.4 PHP的更多电子邮件功能 385

28.4.1 从表单发送邮件 385

28.4.2 从数据库发送邮件 387

28.4.3 自定义的PHP邮件应用程序 387

28.5 小结 389

第29章 PHP和XML 390

29.1 什么是XML 390

29.2 使用XML 392

29.3 文档和DTD 393

29.3.1 DTD的结构 395

29.3.2 合法性与非合法性解析器 397

29.4 SAX和DOM的比较 397

29.4.1 SAX 397

29.4.2 DOM 398

29.5 PHP的DOM函数 399

29.5.1 SAX 400

29.5.2 使用SAX 401

29.5.3 SAX选项 402

29.6 针对SAX的PHP函数 403

29.7 自定义的SAX应用程序 405

29.8 常见问题及解答 411

29.9 小结 412

第30章 使用面向对象编程技术 413

30.1 面向对象编程擅长于什么 413

30.1.1 面向对象技术 414

30.1.2 PHP中的对象、类和类型 415

30.1.3 属性 415

30.1.4 函数 416

30.1.5 构造函数 416

30.1.6 继承 416

30.1.7 覆盖 417

30.1.8 重载 418

30.1.9 作用域 418

30.1.10 赋值、别名和引用 419

30.1.11 显示和打印对象 422

30.1.12 自检 422

30.2 类型和类自检函数 422

30.3 对象序列化 426

30.4.1 COM和DCOM 427

30.4 扩展接口:COM、DCOM、Java和CORBA 427

30.5 面向对象应用程序示例 429

30.6 小结 432

第31章 安全性和密码学 434

31.1 可能遭受的攻击 434

31.1.1 站点毁损 435

31.1.2 访问源代码 436

31.1.3 阅读任意的文件 437

31.1.4 运行任意的程序 440

31.1.6 E-mail安全 441

31.1.5 病毒和其他电子恶意代码 441

31.2 加密 442

31.2.1 公开密钥加密 442

31.2.2 单密钥加密 443

31.2.3 为cookie加密 445

31.2.4 散列法 446

31.2.5 数字签名文件 447

31.3 FYI:安全Web站点 448

31.2.6 安全服务器层 448

31.4 小结 449

第32章 配置和调整 450

32.1 了解环境变量 450

32.2 理解PHP配置 450

32.2.1 编译时选项 451

32.2.2 CGI编译时选项 455

32.2.3 Apache配置文件 456

32.2.4 php.ini文件 458

32.3 改善PHP性能 461

32.4 小结 463

附录A C程序员关心的内容 465

附录B ASP程序员关心的内容 469

附录C HTML程序员关心的内容 477

附录D PHP资源 483

名词解释 489