《细说PHP 第2版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:LAMP兄弟连组编;高洛峰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121185632
  • 页数:810 页
图书介绍:本书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂,系统地介绍了PHP的相关技术及其在Web开发中的应用。全书共30章,每一章都是PHP独立知识点的总结。对于PHP应用开发新手,本书不失为一本好的入门教材,内容既实用又全面,辅以视频教程,使读者轻松掌握所学知识。

第1部分 Web开发入门篇 2

第1章LAMP网站构建 2

1.1介绍网站给你认识 2

1.1.1 Web应用的优势 3

1.1.2 Web 2.0时代的互联网 4

1.1.3 Web开发标准 5

1.1.4认识脚本语言 6

1.1.5了解HTTP协议 6

1.2 动态网站开发所需的Web构件 10

1.2.1客户端浏览器 10

1.2.2超文本标记语言HTML 12

1.2.3层叠样式表CSS 13

1.2.4客户端脚本编程语言JavaScript 13

1.2.5 Web服务器 14

1.2.6服务器端编程语言 15

1.2.7数据库管理系统 16

1.3几种主流的Web应用程序平台 17

1.3.1 Web应用程序开发平台对比分析 17

1.3.2动态网站开发平台技术比较 18

1.4 Web的工作原理 19

1.4.1情景1:服务器不带应用程序服务器和数据库 19

1.4.2情景2:带应用程序服务器的Web服务器 20

1.4.3情景3:浏览器访问服务器端的数据库 21

1.5 LAMP网站开发组合概述 22

1.5.1 Linux操作系统 22

1.5.2 Web服务器Apache 22

1.5.3 MySQL数据库管理系统 23

1.5.4 PHP后台脚本编程语言 23

1.5.5 LAMP发展趋势 25

1.6学 PHP需要学习什么内容 26

1.6.1学PHP之前的准备 26

1.6.2学PHP时需要了解或掌握的内容 27

1.6.3优秀的Web程序员是怎样练成的 28

1.7 小结 29

本章必须掌握的知识点 29

本章需要了解的内容 29

第2章HTML的设计与应用 30

2.1网页制作概述 30

2.1.1 HTML基础 30

2.1.2简单HTML实例制作 31

2.2 HTML语言的语法 32

2.2.1 HTML标签和元素 32

2.2.2 HTML语法不区分字母大小写 32

2.2.3 HTML标签属性 33

2.2.4 HTML颜色值的设置 33

2.2.5 HTML文档注释 33

2.2.6 HTML代码格式 33

2.2.7 HTML字符实体 34

2.3 HTML文件的主体结构 34

2.4 HTML文档头部元素<head> 35

2.4.1 <title>元素 35

2.4.2 <base>元素 35

2.4.3 <link>元素 36

2.4.4 <meta>元素 36

2.5 HTML文档主体标记 37

2.6文字版面的编辑 37

2.6.1格式标签 38

2.6.2文本标签 39

2.7 创建图像和链接 41

2.7.1插入图片 41

2.7.2建立锚点和超链接 42

2.8使用HTML表格 42

2.9 HTML框架结构 45

2.10 HTML表单设计 47

2.11小结 51

本章必须掌握的知识点 51

本章需要了解的内容 51

本章需要拓展的内容 51

本章的学习建议 52

第3章 层叠样式表CSS 53

3.1 CSS简介 53

3.2 CSS规则的组成 54

3.2.1 CSS注释 55

3.2.2长度单位 56

3.2.3颜色单位和URL值 56

3.3在HTML文档中放置CSS的几种方式 57

3.3.1内联样式表 57

3.3.2嵌入一个样式表 57

3.3.3连接到一个外部的样式表 57

3.4 CSS选择器 58

3.4.1 HTML选择器 58

3.4.2类选择器 58

3.4.3 ID选择器 59

3.4.4关联选择器 59

3.4.5组合选择器 59

3.4.6伪元素选择器 60

3.5 CSS常见的样式属性和值 60

3.5.1字体属性 60

3.5.2颜色属性 61

3.5.3背景属性 61

3.5.4文本属性 62

3.5.5边框属性 62

3.5.6鼠标光标属性 64

3.5.7列表属性 64

3.5.8综合示例 65

3.6小结 67

本章必须掌握的知识点 67

本章需要了解的内容 67

本章需要拓展的内容 67

本章的学习建议 68

第4章 DIV+CSS网页标准化布局 69

4.1DIV+CSS对页面布局的优势 69

4.2“无意义”的HTML元素div和span 70

4.3 W3C盒子模型 70

4.4和页面布局有关的CSS属性 72

4.5盒子区块框的定位 74

4.5.1相对定位 74

4.5.2绝对定位 74

4.6使用盒子模型的浮动布局 75

4.6.1设置浮动 75

4.6.2行框和清理 76

4.7DIV+CSS的兼容性问题 78

4.7.1不同浏览器解释盒子模型的差异 79

4.7.2设置浏览器去遵循W3C标准 80

4.8使用盒子模型设计页面布局 81

4.8.1居中设计 81

4.8.2设置两列浮动的布局 82

4.8.3设置三列浮动的布局 83

4.8.4设置多列浮动的布局 84

4.9 DIV+CSS网站首页面布局实例 85

4.9.1 HTML文件的设计 85

4.9.2 CSS文件设计 87

4.10小结 89

本章必须掌握的知识点 89

本章需要了解的内容 89

本章需要拓展的内容 89

本章的学习建议 89

第2部分 PHP基础篇 92

第5章 从搭建你的PHP开发环境开始 92

5.1几种常见的PHP环境安装方式 92

5.1.1 Linux系统下源代码包方式安装环境 92

5.1.2在Windows系统上安装Web工作环境 93

5.1.3搭建学习型的PHP工作环境 93

5.2环境安装对操作系统的选择 93

5.2.1选择网站运营的操作系统 93

5.2.2选择网站开发的操作系统 94

5.3安装集成PHP开发环境 94

5.3.1安装前准备 94

5.3.2安装步骤 95

5.3.3环境测试 96

5.4 phpMyAdmin的配置与应用 98

5.4.1 HTTP身份验证模式 99

5.4.2 cookie身份验证模式 99

5.4.3 config身份验证模式 100

5.5小结 101

本章必须掌握的知识点 101

本章需要了解的内容 101

本章需要拓展的内容 101

第6章 PHP的基本语法 102

6.1 PHP在Web开发中的应用 102

6.1.1就从认识PHP开始吧 102

6.1.2 PHP都能做什么 103

6.2 第一个PHP脚本程序 105

6.3 PHP语言标记 108

6.3.1将PHP代码嵌入HTML中的位置 109

6.3.2解读开始和结束标记 109

6.4 指令分隔符“分号” 111

6.5 程序注释 111

6.6在程序中使用空白的处理 113

6.7变量 113

6.7.1变量的声明 114

6.7.2变量的命名 115

6.7.3可变变量 116

6.7.4变量的引用赋值 116

6.8 变量的类型 117

6.8.1类型介绍 118

6.8.2布尔型(boolean) 118

6.8.3整型(integer) 119

6.8.4浮点型(float或double) 120

6.8.5字符串(String) 120

6.8.6数组(Array) 122

6.8.7对象(Object) 123

6.8.8资源类型(Resource) 123

6.8.9 NULL类型 124

6.8.10伪类型介绍 124

6.9数据类型之间相互互转换 125

6.9.1自动类型转换 125

6.9.2强制类型转换 126

6.9.3类型转换细节 126

6.9.4变量类型的测试函数 127

6.10常量 128

6.10.1常量的定义和使用 128

6.10.2常量和变量 129

6.10.3系统中的预定义常量 129

6.10.4 PHP中的魔术常量 129

6.11 PHP中的运算符 130

6.11.1算术运算符 131

6.11.2字符串运算符 133

6.11.3赋值运算符 133

6.11.4比较运算符 134

6.11.5逻辑运算符 135

6.11.6位运算符 136

6.11.7其他运算符 139

6.11.8运算符的优先级 140

6.12表达式 141

6.13小结 142

本章必须掌握的知识点 142

本章需要了解的内容 142

本章需要拓展的内容 142

第7章PHP的流程控制结构 143

7.1分支结构 143

7.1.1单一条件分支结构(if) 144

7.1.2双向条件分支结构(else从句) 145

7.1.3多向条件分支结构(elseif子句) 145

7.1.4多向条件分支结构(switch语句) 147

7.1.5巢状条件分支结构 148

7.1.6条件分支结构实例应用(简单计算器) 149

7.2 循环结构 151

7.2.1 while语句 152

7.2.2 do……while循环 154

7.2.3 for语句 155

7.3 特殊的流程控制语句 157

7.3.1 break语句 157

7.3.2 continue语句 158

7.3.3 exit语句 159

7.4 小结 160

本章必须掌握的知识点 160

本章需要了解的内容 160

第8章 PHP的函数应用 161

8.1函数的定义 161

8.2 自定义函数 162

8.2.1函数的声明 162

8.2.2函数的调用 164

8.2.3函数的参数 165

8.2.4函数的返回值 166

8.3函数的工作原理和结构化编程 168

8.4 PHP变量的范围 168

8.4.1局部变量 169

8.4.2全局变量 170

8.4.3静态变量 171

8.5声明及应用各种形式的PHP函数 171

8.5.1常规参数的函数 173

8.5.2伪类型参数的函数 173

8.5.3引用参数的函数 173

8.5.4默认参数的函数 175

8.5.5可变个数参数的函数 176

8.5.6回调函数 177

8.6递归函数 181

8.7使用自定义函数库 182

8.8小结 183

本章必须掌握的知识点 183

本章需要了解的内容 183

本章需要拓展的内容 183

第9章 PHP中的数组与数据结构 184

9.1数组的分类 184

9.2数组的定义 186

9.2.1直接赋值的方式声明数组 186

9.2.2使用array()语言结构新建数组 188

9.2.3多维数组的声明 188

9.3数组的遍历 190

9.3.1使用for语句循环遍历数组 191

9.3.2使用foreach语句遍历数组 193

9.3.3联合使用list()、each()和while循环遍历数组 195

9.3.4使用数组的内部指针控制函数遍历数组 198

9.4预定义数组 199

9.4.1服务器变量:$_SERVER 200

9.4.2环境变量:$_ENV 200

9.4.3 URL GET变量:$_GET 200

9.4.4 HTTP POST变量:$_POST 201

9.4.5 request变量:$_REQUEST 202

9.4.6 HTTP文件上传变量:$_FILES 202

9.4.7 HTTP Cookies:$_COOKIE 202

9.4.8 Session变量:$_SESSION 203

9.4.9 Global变量:$_GLOBALS 203

9.5 数组的相关处理函数 203

9.5.1数组的键/值操作函数 203

9.5.2统计数组元素的个数和唯一性 206

9.5.3使用回调函数处理数组的函数 208

9.5.4数组的排序函数 211

9.5.5拆分、合并、分解和接合数组 215

9.5.6数组与数据结构 218

9.5.7其他有用的数组处理函数 220

9.6操作PHP数组需要注意的一些细节 221

9.6.1数组运算符号 221

9.6.2删除数组中的元素操作 222

9.6.3关于数组下标的注意事项 222

9.7小结 223

本章必须掌握的知识点 223

本章需要了解的内容 223

本章需要拓展的内容 223

第10章 PHP面向对象的程序设计 224

10.1面向对象的介绍 224

10.1.1类和对象之间的关系 225

10.1.2面向对象的程序设计 225

10.2如何抽象一个类 226

10.2.1类的声明 226

10.2.2成员属性 227

10.2.3成员方法 228

10.3通过类实例化对象 229

10.3.1实例化对象 229

10.3.2对象类型在内存中的分配 230

10.3.3对象中成员的访问 232

10.3.4特殊的对象引用“$this” 234

10.3.5构造方法与析构方法 235

10.4封装性 238

10.4.1设置私有成员 239

10.4.2私有成员的访问 240

10.4.3_set()、_get()、_isset()和_unset()四个方法 242

10.5 继承性 247

10.5.1类继承的应用 247

10.5.2访问类型控制 249

10.5.3子类中重载父类的方法 251

10.6 常见的关键字和魔术方法 253

10.6.1 final关键字的应用 253

10.6.2 static关键字的使用 254

10.6.3单态设计模式 255

10.6.4 const关键字 257

10.6.5 instanceof关键字 257

10.6.6克隆对象 257

10.6.7类中通用的方法_toString() 259

10.6.8_call()方法的应用 259

10.6.9自动加载类 261

10.6.10对象串行化 262

10.7 抽象类与接口 265

10.7.1抽象类 265

10.7.2接口技术 266

10.8多态性的应用 268

10.9面向对象版图形计算器 270

10.9.1需求分析 270

10.9.2功能设计及实现 271

10.9.3类的组织架构 276

10.10小结 277

本章必须掌握的知识点 277

本章需要了解的内容 278

本章需要拓展的内容 278

第11章 字符串处理 279

11.1字符串的处理介绍 279

11.1.1字符串的处理方式 279

11.1.2字符串类型的特点 280

11.1.3双引号中变量解析总结 280

11.2 常用的字符串输出函数 281

11.3 常用的字符串格式化函数 284

11.3.1去除空格和字符串填补函数 284

11.3.2字符串大小写的转换 285

11.3.3和HTML标签相关的字符串格式化 286

11.3.4其他字符串格式化函数 290

11.4字符串比较函数 291

11.4.1按字节顺序进行字符串比较 291

11.4.2按自然排序进行字符串比较 292

11.5小结 293

本章必须掌握的知识点 293

本章需要拓展的内容 293

第12章 正则表达式 294

12.1正则表达式简介 294

12.1.1选择PHP正则表达式的处理函数库 294

12.2正则表达式的语法规则 295

12.2.1定界符 296

12.2.2原子 296

12.2.3元字符 298

12.2.4模式修正符 301

12.3与Perl兼容的正则表达式函数 302

12.3.1字符串的匹配与查找 302

12.3.2字符串的替换 305

12.3.3字符串的分割和连接 310

12.4 文章发布操作示例 312

12.5 小结 317

本章必须掌握的知识点 317

本章需要了解的内容 317

本章需要扩展的内容 317

第3部分 PHP常用功能模块篇 320

第13章 PHP的错误和异常处理 320

13.1错误处理 320

13.1.1错误报告级别 321

13.1.2调整错误报告级别 321

13.1.3使用trigger error()函数来替代die() 323

13.1.4自定义错误处理 323

13.1.5写错误日志 325

13.2异常处理 327

13.2.1异常处理实现 328

13.2.2扩展PHP内置的异常处理类 328

13.2.3捕获多个异常 330

13.3小结 332

本章必须掌握的知识点 332

本章需要了解的内容 332

第14章PHP的日期和时间 333

14.1 UNIX时间戳 333

14.1.1将日期和时间转变成UNIX时间戳 333

14.1.2日期的计算 335

14.2在PHP中获取日期和时间 335

14.2.1调用getdate()函数取得日期/时间信息 335

14.2.2日期和时间格式化输出 336

14.3修改PHP的默认时区 337

14.4 使用微秒计算PHP脚本执行时间 338

14.5日历类 339

14.6小结 343

本章必须掌握的知识点 343

本章需要了解的内容 343

本章需要拓展的内容 343

本章的学习建议 343

第15章 文件系统处理 344

15.1文件系统概述 344

15.1.1文件类型 344

15.1.2文件的属性 345

15.2目录的基本操作 348

15.2.1解析目录路径 348

15.2.2遍历目录 349

15.2.3统计目录大小 351

15.2.4建立和删除目录 352

15.2.5复制目录 352

15.3文件的基本操作 353

15.3.1文件的打开与关闭 353

15.3.2写入文件 355

15.3.3读取文件内容 356

15.3.4访问远程文件 358

15.3.5移动文件指针 359

15.3.6文件的锁定机制 360

15.3.7文件的一些基本操作函数 363

15.4 文件的上传与下载 364

15.4.1文件上传 364

15.4.2处理多个文件上传 367

15.4.3文件下载 368

15.5设计经典的文件上传类 369

15.5.1需求分析 369

15.5.2程序设计 370

15.5.3文件上传类代码实现 370

15.5.4文件上传类的应用过程 375

15.6小结 376

本章必须掌握的知识点 376

本章需要了解的内容 377

本章需要拓展的内容 377

本章的学习建议 377

第16章 PHP动态图像处理 378

16.1 PHP中GD库的使用 378

16.1.1画布管理 380

16.1.2设置颜色 380

16.1.3生成图像 381

16.1.4绘制图像 381

16.1.5在图像中绘制文字 383

16.2设计经典验证码类 386

16.2.1设计验证码类 386

16.2.2应用验证码类的实例对象 389

16.2.3表单中应用验证码 389

16.2.4实例演示 390

16.3 PHP图片处理 390

16.3.1图片背景管理 390

16.3.2图片缩放 392

16.3.3图片裁剪 393

16.3.4添加图片水印 395

16.3.5图片旋转和翻转 396

16.4 设计经典的图像处理类 398

16.4.1需求分析 398

16.4.2程序设计 399

16.4.3图像处理类代码实现 399

16.4.4图像处理类的应用过程 404

16.5 小结 406

本章必须掌握的知识点 406

本章需要了解的内容 406

本章需要拓展的内容 406

第4部分 数据库开发篇 408

第17章MySQL数据库概述 408

17.1数据库的应用 408

17.1.1数据库在Web开发中的重要地位 409

17.1.2为什么PHP会选择MySQL作为自己的黄金搭档 409

17.1.3 PHP和MySQL的合作方式 409

17.1.4结构化查询语言SQL 410

17.2 MySQL数据库的常见操作 411

17.2.1 MySQL数据库的连接与关闭 411

17.2.2创建新用户并授权 412

17.2.3创建数据库 412

17.2.4创建数据表 413

17.2.5数据表内容的简单管理 414

17.3小结 416

本章必须掌握的知识点 416

第18章 MySQL数据表的设计 417

18.1数据表(Table) 417

18.2数据值和列类型 418

18.2.1数值类的数据列类型 418

18.2.2字符串类数据列类型 419

18.2.3日期和时间型数据列类型 420

18.2.4 NULL值 421

18.2.5类型转换 421

18.3数据字段属性 421

18.4数据表对象管理 422

18.4.1创建表(CREATE TABLE) 422

18.4.2修改表(ALTER TABLE) 423

18.4.3删除表(DROP TABLE) 424

18.5 数据表的类型及存储位置 425

18.5.1 MyISAM数据表 425

18.5.2 InnoDB数据表 425

18.5.3如何选择InnoDB还是MyISAM表类型 425

18.5.4数据表的储存位置 426

18.6数据表的默认字符集 426

18.6.1字符集 427

18.6.2字符集支持原理 427

18.6.3创建数据对象时修改字符集 428

18.7创建索引 428

18.7.1主键索引(PRIMARY KEY) 428

18.7.2唯一索引(UNIQUE) 429

18.7.3常规索引(INDEX) 430

18.7.4全文索引(FULLTEXT) 430

18.8规范化 431

18.8.1起点 431

18.8.2第一范式 432

18.8.3第二范式 432

18.8.4第三范式 434

18.8.5规范化理论 435

18.9数据库的设计技巧 436

18.9.1数据库设计要求 436

18.9.2起名字的技巧 436

18.9.3数据库具体设计工作中的技巧 436

18.10小结 437

本章必须掌握的知识点 437

本章需要了解的内容 437

本章需要拓展的内容 437

第19章 SQL语句设计 438

19.1操作数据表中的数据记录(DML) 438

19.1.1使用INSERT语句向数据表中添加数据 438

19.1.2使用UPDATE语句更新数据表中已存在的数据 439

19.1.3使用DELETE语句删除数据表中不需要的数据记录 440

19.2 通过DQL命令查询数据表中的数据 441

19.2.1选择特定的字段 441

19.2.2使用AS子句为字段取别名 442

19.2.3 DISTINCT关键字的使用 442

19.2.4在SELECT语句中使用表达式的列 443

19.2.5使用WHERE子句按条件检索 444

19.2.6根据空值(NULL)确定检索条件 445

19.2.7使用BETWEEN AND进行范围比较查询 445

19.2.8使用IN进行范围比对查询 445

19.2.9使用LIKE进行模糊查询 446

19.2.10多表查询(连接查询) 446

19.2.11嵌套查询(子查询) 449

19.2.12使用ORDER BY对查询结果排序 449

19.2.13使用LIMIT限定结果行数 450

19.2.14使用统计函数 450

19.2.15使用GROUP BY对查询结果分组 451

19.3查询优化 452

19.4小结 454

本章必须掌握的知识点 454

本章需要拓展的内容 454

本章的学习建议 454

第20章 PHP访问MySQL的扩展函数 455

20.1 PHP访问MySQL数据库服务器的流程 455

20.2在PHP脚本中连接MySQL服务器 457

20.2.1在PHP程序中选择已创建的数据库 458

20.2.2执行SQL命令 458

20.2.3在PHP脚本中处理SELECT查询结果集 460

20.3设计完美分页类 462

20.3.1需求分析 462

20.3.2程序设计 462

20.3.3完美分页类的代码实现 463

20.3.4分页类的应用过程 468

20.4管理books表实例 470

20.4.1需求分析 470

20.4.2程序设计 471

20.5 PHP的mysqli扩展介绍 477

20.5.1启用mysqli扩展模块 478

20.5.2 mysqli扩展接口的应用概述 479

20.6小结 480

本章必须掌握的知识点 480

本章需要了解的内容 480

本章需要拓展的内容 480

本章的学习建议 480

第21章 数据库抽象层PDO 481

21.1 PDO所支持的数据库 481

21.2 PDO的安装 482

21.3创建PDO对象 483

21.3.1以多种方式调用构造方法 484

21.3.2 PDO对象中的成员方法 486

21.4使用PDO对象 487

21.4.1调整PDO的行为属性 487

21.4.2 PDO处理PHP程序和数据库之间的数据类型转换 487

21.4.3 PDO的错误处理模式 488

21.4.4使用PDO执行SQL语句 489

21.5 PDO对预处理语句的支持 491

21.5.1了解PDOStatement对象 491

21.5.2准备语句 492

21.5.3绑定参数 493

21.5.4执行准备好的查询 494

21.5.5获取数据 495

21.5.6大数据对象的存取 499

21.6 PDO的事务处理 499

21.6.1 MySQL的事务处理 500

21.6.2构建事务处理的应用程序 500

21.7小结 502

本章必须掌握的知识点 502

本章需要了解的内容 502

本章需要拓展的内容 502

第5部分 PHP开发高级篇 504

第22章MemCache管理与应用 504

22.1 MemCache概述 504

22.1.1初识MemCache 504

22.1.2 MemCache在Web中的应用 505

22.2 memcached的安装及管理 507

22.2.1 Linux下安装MemCache软件 507

22.2.2 Windows下安装memcached软件 507

22.2.3 memcached服务器的管理 508

22.3使用Telnet作为memcached的客户端管理 509

22.3.1连接memcached服务器 509

22.3.2基本的memcached客户端命令 509

22.3.3查看当前memcached服务器的运行状态信息 510

22.3.4数据管理指令 510

22.4 PHP的memcached管理接口 511

22.4.1安装PHP中的MemCache应用程序扩展接口 512

22.4.2 MemCache应用程序扩展接口 513

22.4.3 MemCache的实例应用 518

22.5 memcached服务器的安全防护 519

22.6小结 519

本章必须掌握的知识点 519

本章需要了解的内容 520

本章需要拓展的内容 520

第23章 会话控制 521

23.1为什么要使用会话控制 521

23.2 会话跟踪的方式 522

23.3 Cookie的应用 523

23.3.1 Cookie概述 523

23.3.2向客户端计算机中设置Cookie 524

23.3.3在PHP脚本中读取Cookie的资料内容 525

23.3.4数组形态的Cookie应用 525

23.3.5删除Cookie 526

23.3.6基于Cookie的用户登录模块 526

23.4 Session的应用 528

23.4.1 Session概述 528

23.4.2配置Session 529

23.4.3 Session的声明与使用 530

23.4.4注册一个会话变量和读取Session 531

23.4.5注销变量与销毁Session 531

23.4.6 Session的自动回收机制 533

23.4.7传递Session ID 533

23.5一个简单的邮件系统实例 536

23.5.1为邮件系统准备数据 536

23.5.2编码实现邮件系统 537

23.5.3邮件系统执行说明 539

23.6自定义Session处理方式 540

23.6.1自定义Session的存储机制 540

23.6.2使用数据库处理Session信息 543

23.6.3使用memcached处理Session信息 546

23.7小结 549

本章必须掌握的知识点 549

本章需要了解的内容 549

本章需要拓展的内容 549

第24章PHP的模板引擎Smarty 550

24.1什么是模板引擎 550

24.2 自定义模板引擎 552

24.2.1自定义模板引擎类 552

24.2.2使用自己的模板引擎 554

24.2.3应用自定义模板引擎的示例分析 556

24.3选择Smarty模板引擎 559

24.4 安装Smarty及初始化配置 560

24.4.1安装Smarty 561

24.4.2初始化Smarty类库的默认设置 561

24.4.3第一个Smarty的简单示例 564

24.5 Smarty的基本应用 566

24.5.1 PHP程序员常用和Smarty相关的操作 567

24.5.2模板设计时美工的常用操作 568

24.6 Smarty模板设计的基本语法 569

24.6.1模板中的注释 569

24.6.2模板中的变量应用 569

24.6.3模板中的函数应用 572

24.6.4忽略Smarty解析 574

24.7在Smarty模板中的变量应用 574

24.7.1从配置文件中读取变量 575

24.7.2在模板中使用保留变量 578

24.8在Smarty模板中的变量调解器 580

24.8.1变量调解器函数的使用方式 580

24.8.2 Smarty默认提供的变量调解器 581

24.8.3自定义变量调解器插件 582

24.9 Smarty模板中自定义函数 585

24.9.1为Smarty模板扩充函数插件 585

24.9.2为Smarty模板扩充块函数插件 586

24.10 Smarty模板中的内置函数 587

24.10.1变量声明 588

24.10.2流程控制 589

24.10.3声明和调用模板函数 592

24.10.4数组遍历 593

24.10.5 Smarty提供的其他内置函数 598

24.11 Smarty的模板继承特性 599

24.11.1使用{extends}函数实现模板继承 599

24.11.2在子模板中覆盖父模板中的部分内容区域 600

24.11.3合并子模板和父模板的{block}标签内容 601

24.12 Smarty的缓存控制 602

24.12.1在Smarty中控制缓存 603

24.12.2每个模板多个缓存 604

24.12.3为缓存实例消除处理开销 605

24.12.4清除缓存 605

24.12.5关闭局部缓存 606

24.13小结 606

本章必须掌握的知识点 606

本章需要了解的内容 606

本章需要拓展的内容 607

第25章 MVC模式与PHP框架 608

25.1 MVC模式在Web中的应用 608

25.1.1 MVC模式的工作原理 608

25.1.2 MVC模式的优缺点 609

25.2 PHP开发框架 610

25.2.1什么是框架 611

25.2.2为什么要用框架 611

25.2.3框架和MVC设计模式的关系 612

25.2.4比较流行的PHP框架 612

25.3划分模块和操作 614

25.3.1为项目划分模块 614

25.3.2为模块设置操作 615

第26章 超轻量级PHP框架BroPHP 616

26.1 BroPHP框架概述 616

26.1.1系统特点 616

26.1.2环境要求 617

26.1.3 BroPHP框架源码的目录结构 617

26.2单一入口 618

26.2.1基于BroPHP框架的单一入口编写规则 618

26.3部署项目应用目录 619

26.3.1项目部署方式 620

26.3.2 URL访问 622

26.4 BroPHP框架的基本设置 623

26.4.1默认开启 623

26.4.2配置文件 623

26.4.3内置函数 624

26.5声明控制器(Control) 625

26.5.1控制器的声明(模块) 625

26.5.2操作的声明 626

26.5.3页面跳转 627

26.5.4重定向 628

26.6设计视图(View) 629

26.6.1视图与控制器之间的交互 629

26.6.2切换模板风格 630

26.6.3模板文件的声明规则 630

26.6.4 display()用新用法 631

26.6.5在模板中的几个常用变量应用 631

26.6.6在PHP程序中定义资源位置 632

26.7应用模型(Model) 632

26.7.1 BroPHP数据库操作接口的特性 632

26.7.2切换数据库驱动 633

26.7.3声明和实例化Model 634

26.7.4数据库的统一操作接口 637

26.8 自动验证 654

26.9缓存设置 656

26.9.1基于memcached缓存设置 656

26.9.2基于Smarty的缓存机制 657

26.10调试模式 658

26.11内置扩展类库 659

26.11.1分页类Page 659

26.11.2验证码类Vcode 660

26.11.3图像处理类Image 661

26.11.4文件上传类FileUpload 662

26.12自定义功能扩展 664

26.12.1自定义扩展类库 664

26.12.2自定义扩展函数库 664

26.13 小结 664

本章必须掌握的知识点 664

本章需要了解的内容 665

第6部分 项目开发篇 668

第27章 B/S结构软件开发流程 668

27.1软件开发过程的划分 668

27.2需求开发 669

27.2.1需求分析流程 670

27.2.2需求分析说明 670

27.2.3输出 671

27.3系统设计 671

27.3.1系统设计流程 672

27.3.2系统设计说明 672

27.4编码测试 674

27.4.1编码与测试流程 675

27.4.2编码说明 675

27.4.3结果测试说明 676

27.5 试运行 678

27.5.1软件试运行流程 678

27.5.2软件试运行说明 679

27.6实施 679

27.6.1软件实施流程 680

27.6.2软件实施说明 680

27.7验收 681

27.7.1软件验收流程 681

27.7.2软件验收说明 682

27.7.3验收标准 683

27.8服务与维护 683

27.8.1责任人 683

27.8.2收集信息 683

27.8.3维护分析 684

27.8.4软件维护 684

27.8.5改进 684

27.8.6输出 684

27.9项目管理 684

27.9.1软件项目的计划 685

27.9.2软件项目的组织 687

27.9.3项目小组组织形式 687

27.10项目参考 688

第28章 需求分析说明书 689

28.1文档介绍 689

28.1.1编写说明 690

28.1.2项目背景 690

28.1.3读者对象 690

28.1.4参考资料 690

28.1.5术语与缩写解释 691

28.2 任务概述 691

28.2.1产品的描述 691

28.2.2系统目标 692

28.2.3系统功能结构 692

28.2.4系统流程图 692

28.3业务描述 694

28.3.1后台登录管理 694

28.3.2后台操作界面管理 695

28.3.3常规管理 698

28.3.4公告管理 700

28.3.5友情链接管理 702

28.3.6相册管理 705

28.3.7图片管理 708

28.3.8栏目管理 710

28.3.9文章管理 713

28.3.10幻灯片管理 716

28.3.11用户组管理 719

28.3.12用户管理 721

28.3.13前台首页管理 724

28.3.14栏目列表管理 725

28.3.15文章内容管理 727

28.3.16文章搜索管理 728

28.3.17登录注册管理 730

28.3.18个人空间管理 731

28.3.19消息管理 736

28.3.20动态管理 739

28.4 系统运行环境 743

28.4.1硬件环境 743

28.4.2软件环境 743

28.5 需求设计评审 744

第29章 数据库设计说明书 745

29.1引言 745

29.1.1编写目的 746

29.1.2背景 746

29.1.3定义 746

29.1.4参考资料 746

29.2外部设计 746

29.2.1标识符和状态 747

29.2.2使用它的程序 747

29.2.3约定 747

29.2.4支持软件 747

29.3结构设计 748

29.4逻辑结构设计 754

29.4.1 ER图向关系模型的转化 754

29.4.2确定关系模式 754

29.4.3消除冗余 755

29.5物理结构设计 755

29.5.1设计数据表结构 755

29.5.2创建数据表 760

29.5.3数据表记录的输入 764

29.6 安全保密设计 764

29.6.1完整性 764

29.6.2数据库设计的其他问题 765

第30章 程序设计说明书 766

30.1引言 766

30.1.1编写目的 766

30.1.2背景 767

30.1.3定义 767

30.1.4使用技术 767

30.1.5参考资料 767

30.2 系统的结构 767

30.2.1项目的目录结构 768

30.2.2模块结构 768

30.2.3程序结构 769

30.3 用户管理模块设计说明 774

30.3.1功能 774

30.3.2流程逻辑 774

30.3.3接口 775

30.3.4存储分配 775

30.3.5注释设计 775

30.3.6限制条件 775

30.3.7测试计划 776

30.3.8尚未解决的问题 776

30.3.9获取添加用户的界面操作add() 776

30.3.10用户数据入库的操作insert() 777

30.3.11查询用户列表操作index() 778

30.3.12获取修改用户的界面操作mod() 779

30.3.13用户数据修改的操作update() 780

30.3.14删除用户操作del() 781

附录 784

附录A编码规范 784

A.1绪论 784

A.1.1适用范围 784

A.1.2目标 784

A.1.3开发工具 785

A.2 PHP的文件格式 785

A.2.1 PHP开始和结束标记 785

A.2.2注释规范 786

A.2.3空行和空白 786

A.2.4字符串的使用 787

A.2.5命名原则 788

A.2.6 语言结构 791

A.2.7其他规范细节 793

A.3 MySQL设计规范 794

A.3.1数据表的设计 794

A.3.2索引设计原则 795

A.3.3 SQL语句设计 796

A.4模板设计 796

附录B PHP的安全和优化 798

B.1网站安全Security 798

B.1.1安全配置PHP 799

B.1.2隐藏配置细节 802

B.1.3隐藏敏感数据 803

B.1.4清理用户数据 804

B.1.5数据加密 806

B.2网站优化Optimize 807

B.2.1 PHP脚本级优化 807

B.2.2使用代码优化工具 809

B.2.3缓存加速 810

B.2.4 HTTP加速 810

B.2.5启用GZIP内容压缩 810