细说PHP.pdf

细说PHP.pdf
 

书籍描述

编辑推荐
《细说PHP(第2版)》获得51CTO“最受读者喜爱的原创IT技术图书”奖。

名人推荐
本书内容充实,是作者多年丰富PHP授课经验的总结,为初学者首选教材。
——腾讯开放平台副总经理,腾讯云平台负责人 陈磊
敏捷高效开发是PHP的一大特性,从书中掌握设计思想,学而时习之,必将获益匪浅。
——盛大云北京研发部经理,PHPcMs负责人 王参加
此书对于PHP爱好者,可谓一本好书,内容详尽实用,结构组织符合实战需求,我诚挚推荐。
——北京4399轻电商团队技术总监 张宴
内容详尽,由浅入深,覆盖全面,藏经之作。
——ThinkPHP框架创始人 刘晨

作者简介
高洛峰,LAMP兄弟连(北京易第优教育咨询有限公司)教学总临,拥有8年软件开发工作绎验,6年IT教学工作经验。曾任多家上市企业技术总监、项目经理、高级软件工程师等职务,具有扎实的技术功底。资深技术讲师,从事IT培训以来累计授课长达一万课时以上,培训数千名学员成功走向IT岗位,具有丰富的lT教学绎验。熟练掌握UNIX/Linux/Windows等多种操作系统,一直从事PHP、Java、嵌入式、C/C++、Oracle数据库等技术研发工作。其中,对Web系统软件开发深有研究,近年来致力于推广LAMP开源技术平台。

目录
第1部分Web开发入门篇
第1章LAMP网站构建2
1.1介绍网站给你认识2
1.1.1Web应用的优势3
1.1.2Web2.0时代的互联网4
1.1.3Web开发标准5
1.1.4认识脚本语言6
1.1.5了解HTTP协议6
1.2动态网站开发所需的Web构件10
1.2.1客户端浏览器10
1.2.2超文本标记语言HTML12
1.2.3层叠样式表CSS13
1.2.4客户端脚本编程语言JavaScript13
1.2.5Web服务器14
1.2.6服务器端编程语言15
1.2.7数据库管理系统16
1.3几种主流的Web应用程序平台17
1.3.1Web应用程序开发平台对比分析17
1.3.2动态网站开发平台技术比较18
1.4Web的工作原理19
1.4.1情景1:服务器不带应用程序服务器和
数据库19
1.4.2情景2:带应用程序服务器的Web服务器20
1.4.3情景3:浏览器访问服务器端的数据库21
1.5LAMP网站开发组合概述22
1.5.1Linux操作系统22
1.5.2Web服务器Apache22
1.5.3MySQL数据库管理系统23
1.5.4PHP后台脚本编程语言23
1.5.5LAMP发展趋势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.1HTML基础30
2.1.2简单HTML实例制作31
2.2HTML语言的语法32
2.2.1HTML标签和元素32
2.2.2HTML语法不区分字母大小写32
2.2.3HTML标签属性33
2.2.4HTML颜色值的设置33
2.2.5HTML文档注释33
2.2.6HTML代码格式33
2.2.7HTML字符实体34
2.3HTML文件的主体结构34
2.4HTML文档头部元素<head>35
2.4.1<title>元素35
2.4.2<base>元素35
2.4.3<link>元素36
2.4.4<meta>元素36
2.5HTML文档主体标记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.9HTML框架结构45
2.10HTML表单设计47
2.11小结51
本章必须掌握的知识点51
本章需要了解的内容51
本章需要拓展的内容51
本章的学习建议52
第3章层叠样式表CSS53
3.1CSS简介53
3.2CSS规则的组成54
3.2.1CSS注释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.4CSS选择器58
3.4.1HTML选择器58
3.4.2类选择器58
3.4.3ID选择器59
3.4.4关联选择器59
3.4.5组合选择器59
3.4.6伪元素选择器60
3.5CSS常见的样式属性和值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和span70
4.3W3C盒子模型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.9DIV+CSS网站首页面布局实例85
4.9.1HTML文件的设计85
4.9.2CSS文件设计87
4.10小结89
本章必须掌握的知识点89
本章需要了解的内容89
本章需要拓展的内容89
本章的学习建议89
第2部分PHP基础篇
第5章从搭建你的PHP开发环境开始92
5.1几种常见的PHP环境安装方式92
5.1.1Linux系统下源代码包方式安装环境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.4phpMyAdmin的配置与应用98
5.4.1HTTP身份验证模式99
5.4.2cookie身份验证模式99
5.4.3config身份验证模式100
5.5小结101
本章必须掌握的知识点101
本章需要了解的内容101
本章需要拓展的内容101
第6章PHP的基本语法102
6.1PHP在Web开发中的应用102
6.1.1就从认识PHP开始吧102
6.1.2PHP都能做什么103
6.2第一个PHP脚本程序105
6.3PHP语言标记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.9NULL类型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.4PHP中的魔术常量129
6.11PHP中的运算符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.1while语句152
7.2.2do
7.2.3for语句155
7.3特殊的流程控制语句157
7.3.1break语句157
7.3.2continue语句158
7.3.3exit语句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.4PHP变量的范围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服务器变量:$_SERVER200
9.4.2环境变量:$_ENV200
9.4.3URLGET变量:$_GET200
9.4.4HTTPPOST变量:$_POST201
9.4.5request变量:$_REQUEST202
9.4.6HTTP文件上传变量:$_FILES202
9.4.7HTTPCookies:$_COOKIE202
9.4.8Session变量:$_SESSION203
9.4.9Global变量:$GLOBALS203
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.1final关键字的应用253
10.6.2static关键字的使用254
10.6.3单态设计模式255
10.6.4const关键字257
10.6.5instanceof关键字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常用功能模块篇
第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.1UNIX时间戳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.1PHP中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.3PHP图片处理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部分数据库开发篇
第17章MySQL数据库概述408
17.1数据库的应用408
17.1.1数据库在Web开发中的重要地位409
17.1.2为什么PHP会选择MySQL作为自己
的黄金搭档409
17.1.3PHP和MySQL的合作方式409
17.1.4结构化查询语言SQL410
17.2MySQL数据库的常见操作411
17.2.1MySQL数据库的连接与关闭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.4NULL值421
18.2.5类型转换421
18.3数据字段属性421
18.4数据表对象管理422
18.4.1创建表(CREATETABLE)422
18.4.2修改表(ALTERTABLE)423
18.4.3删除表(DROPTABLE)424
18.5数据表的类型及存储位置425
18.5.1MyISAM数据表425
18.5.2InnoDB数据表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主键索引(PRIMARYKEY)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.3DISTINCT关键字的使用442
19.2.4在SELECT语句中使用表达式的列443
19.2.5使用WHERE子句按条件检索444
19.2.6根据空值(NULL)确定检索条件445
19.2.7使用BETWEENAND进行范围比较
查询445
19.2.8使用IN进行范围比对查询445
19.2.9使用LIKE进行模糊查询446
19.2.10多表查询(连接查询)446
19.2.11嵌套查询(子查询)449
19.2.12使用ORDERBY对查询结果排序449
19.2.13使用LIMIT限定结果行数450
19.2.14使用统计函数450
19.2.15使用GROUPBY对查询结果分组451
19.3查询优化452
19.4小结454
本章必须掌握的知识点454
本章需要拓展的内容454
本章的学习建议454

第20章PHP访问MySQL的扩展函数455
20.1PHP访问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.5PHP的mysqli扩展介绍477
20.5.1启用mysqli扩展模块478
20.5.2mysqli扩展接口的应用概述479
20.6小结480
本章必须掌握的知识点480
本章需要了解的内容480
本章需要拓展的内容480
本章的学习建议480
第21章数据库抽象层PDO481
21.1PDO所支持的数据库481
21.2PDO的安装482
21.3创建PDO对象483
21.3.1以多种方式调用构造方法484
21.3.2PDO对象中的成员方法486
21.4使用PDO对象487
21.4.1调整PDO的行为属性487
21.4.2PDO处理PHP程序和数据库之间的
数据类型转换487
21.4.3PDO的错误处理模式488
21.4.4使用PDO执行SQL语句489
21.5PDO对预处理语句的支持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.6PDO的事务处理499
21.6.1MySQL的事务处理500
21.6.2构建事务处理的应用程序500
21.7小结502
本章必须掌握的知识点502
本章需要了解的内容502
本章需要拓展的内容502
第5部分PHP开发高级篇
第22章MemCache管理与应用504
22.1MemCache概述504
22.1.1初识MemCache504
22.1.2MemCache在Web中的应用505
22.2memcached的安装及管理507
22.2.1Linux下安装MemCache软件507
22.2.2Windows下安装memcached软件507
22.2.3memcached服务器的管理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.4PHP的memcached管理接口511
22.4.1安装PHP中的MemCache应用程序
扩展接口512
22.4.2MemCache应用程序扩展接口513
22.4.3MemCache的实例应用518
22.5memcached服务器的安全防护519
22.6小结519
本章必须掌握的知识点519
本章需要了解的内容520
本章需要拓展的内容520
第23章会话控制521
23.1为什么要使用会话控制521
23.2会话跟踪的方式522
23.3Cookie的应用523
23.3.1Cookie概述523
23.3.2向客户端计算机中设置Cookie524
23.3.3在PHP脚本中读取Cookie的资料
内容525
23.3.4数组形态的Cookie应用525
23.3.5删除Cookie526
23.3.6基于Cookie的用户登录模块526
23.4Session的应用528
23.4.1Session概述528
23.4.2配置Session529
23.4.3Session的声明与使用530
23.4.4注册一个会话变量和读取Session531
23.4.5注销变量与销毁Session531
23.4.6Session的自动回收机制533
23.4.7传递SessionID533
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的模板引擎Smarty550
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安装Smarty561
24.4.2初始化Smarty类库的默认设置561
24.4.3第一个Smarty的简单示例564
24.5Smarty的基本应用566
24.5.1PHP程序员常用和Smarty相关的
操作567
24.5.2模板设计时美工的常用操作568
24.6Smarty模板设计的基本语法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.2Smarty默认提供的变量调解器581
24.8.3自定义变量调解器插件582
24.9Smarty模板中自定义函数585
24.9.1为Smarty模板扩充函数插件585
24.9.2为Smarty模板扩充块函数插件586
24.10Smarty模板中的内置函数587
24.10.1变量声明588
24.10.2流程控制589
24.10.3声明和调用模板函数592
24.10.4数组遍历593
24.10.5Smarty提供的其他内置函数598
24.11Smarty的模板继承特性599
24.11.1使用{extends}函数实现模板继承599
24.11.2在子模板中覆盖父模板中的部分
内容区域600
24.11.3合并子模板和父模板的{block}标签
内容601
24.12Smarty的缓存控制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.1MVC模式在Web中的应用608
25.1.1MVC模式的工作原理608
25.1.2MVC模式的优缺点609
25.2PHP开发框架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框架BroPHP616
26.1BroPHP框架概述616
26.1.1系统特点616
26.1.2环境要求617
26.1.3BroPHP框架源码的目录结构617
26.2单一入口618
26.2.1基于BroPHP框架的单一入口编写
规则618
26.3部署项目应用目录619
26.3.1项目部署方式620
26.3.2URL访问622
26.4BroPHP框架的基本设置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.4display()用新用法631
26.6.5在模板中的几个常用变量应用631
26.6.6在PHP程序中定义资源位置632
26.7应用模型(Model)632
26.7.1BroPHP数据库操作接口的特性632
26.7.2切换数据库驱动633
26.7.3声明和实例化Model634
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分页类Page659
26.11.2验证码类Vcode660
26.11.3图像处理类Image661
26.11.4文件上传类FileUpload662
26.12自定义功能扩展664
26.12.1自定义扩展类库664
26.12.2自定义扩展函数库664
26.13小结664
本章必须掌握的知识点664
本章需要了解的内容665
第6部分项目开发篇
第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.1ER图向关系模型的转化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
附录
附录A编码规范784
A.1绪论784
A.1.1适用范围784
A.1.2目标784
A.1.3开发工具785
A.2PHP的文件格式785
A.2.1PHP开始和结束标记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.3MySQL设计规范794
A.3.1数据表的设计794
A.3.2索引设计原则795
A.3.3SQL语句设计796
A.4模板设计796
附录BPHP的安全和优化798
B.1网站安全Security798
B.1.1安全配置PHP799
B.1.2隐藏配置细节802
B.1.3隐藏敏感数据803
B.1.4清理用户数据804
B.1.5数据加密806
B.2网站优化Optimize807
B.2.1PHP脚本级优化807
B.2.2使用代码优化工具809
B.2.3缓存加速810
B.2.4HTTP加速810
B.2.5启用GZIP内容压缩810
附录C、附录D见本书光盘

文摘
版权页:

细说PHP

插图:

细说PHP

2.生成动态网页
PHP脚本程序和客户端的JavaScript脚本程序不同的是,PHP代码是运行在服务端的。PHP脚本程序可以根据用户在客户端的不同输入请求,在服务端运行该脚本后,动态输出用户请求的内容。客户端就能接收到想得到的结果,但无法得知其背后的代码是如何运作的。甚至可以将Web服务器设置成让PHP来处理所有的HTML文件,这么一来,用户就无法得知服务端到底做了什么。
3.字符串处理
在编写程序代码或是文本处理时,经常在操作字符串,所以字符串处理一直是程序员使用最多的技术之一,PHP是把字符串作为一种基本的数据类型来处理的。在PHP中提供了丰富的字符串处理函数,并使用强大的正则表达式来对字符串或文本进行搜索、查找、匹配、替换等操作。
4.动态输出图像
使用PHP并不局限于输出HTML文本。PHP通过使用GD扩展库还能用来动态输出图像,例如文字按钮、验证码、数据统计图等,还可以轻松地编辑图像,例如处理缩略图和为图片添加水印等,具有强大的图像处理功能。
5.处理服务器端文件系统
要想让数据可以长期保留,可以使用数据库或是文件系统来存取信息。在某些存取数据相对简单的应用中,或是一些特定的应用中,没有必要使用数据库,就可以采用文件操作。PHP可以利用文件系统函数任意操作服务器中的目录或文件。包括目录或文件的打开、编辑、复制、创建、删除,以及文件属性等操作。
6.编写数据库支持的网页
PHP最强大、最显著的特性之一,是它支持很大范围的数据库。用户会发现利用PHP编写数据库支持的网页简单得难以置信。目前,PHP可以连接任何支持世界标准的数据库。
7.会话跟踪控制
我们访问Web服务器通常是使用HTTP协议完成的,但它是一个无状态的协议,没有一个内建机制来维护两个事务之间的状态。也就是当一个用户在请求一个页面后再请求另外一个页面时,HTTP无法告诉我们这两个请求是来自N——+NP。所以可以在PHP中使用会话控制思想在网站中跟踪一个用户,这样就可以很容易地做到用户登录的支持,并根据某个用户的授权级别和个人喜好显示相应的内容,也可以根据会话控制记录该用户的行为。

内容简介
《细说PHP(第2版)》共六个部分,分为30个章节,每一章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前台技术(HTML+CSS)、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义框架BroPHP、Web项目开发整个流程等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多