PHP开发手册,书名,是由孙鹏程译着,电子工业出版社于2011年出版发行的图书。
基本介绍
- 书名PHP开发手册
- 作者孙鹏程
- ISBN9787121122934
- 页数702页
- 定价99.00
- 出版社电子工业出版社
- 出版时间2011-04-01 第1版
- 开本16
- 字数1126000
内容提要
《PHP开发手册(典藏版)》(孙鹏程编写)全面、系统地介绍了PHP实战开发方方面面的技术。内容由浅入深,从易到难,实例丰富,从PHP的基本知识到高级技术与框架操作,再到项目开发与扩展套用,几乎涉及PHP开发与套用的所有重要知识。书中的全部实例原始码都收录在《PHP开发手册(典藏版)》的配书光碟中,供读者实战演练。
《PHP开发手册(典藏版)》共分5篇。第1篇介绍PHP的档案系统、程式调试、异常处理、表单与JavaScript等基础套用;第2篇介绍PHP与MySQL、PostgreSQL、SQL Server以及Oracle等多种不同资料库的互动操作方法;第3篇介绍PHP的扩展库PEAR、ADOdb、FPDF、GD库的操作方法,以及流行的ThinkPHP、Zend Framework、CakePHP、Symfony等PHP开发框架;第4篇通过对CMS系统、OA系统、流程管理系统、资源管理系统等系统的介绍,详细讲解PHP在实际开发中的套用;第5篇介绍PHP的网路客户端、Web Service扩展套用,以及Ajax的基础知识。
《PHP开发手册(典藏版)》光碟中的电子书分三篇第1篇介绍PHP开发环境的搭建、PHP的基本语法与操作;第2篇介绍PHP的面向对象操作及类的开发实例;第3篇介绍PHP伺服器环境的硬体知识与伺服器维护策略。
《PHP开发手册(典藏版)》无论是对初学PHP应用程式的开发人员,还是对PHP应用程式开发有一定经验的开发人员,都会有很大的帮助。对于经常使用PHP的程式设计师,《PHP开发手册(典藏版)》也是一本不可多得的案头必备参考书。
作者简介
孙鹏程,从事7年的PHP B/S模式系统的设计和开发,曾经在神州数码、IBM中国担任项目经理。具有六百余万行代码经验,对PHP与企业结合的套用系统设计有深入研究。开发的基于企业管理流程的套用系统广泛套用于东北电网等大型企业。
目录
第1篇 php基础套用
第1章 档案系统与文本数据操作2
在程式设计中,档案是一个很重要的对象,web编程也不例外。档案的操作在很多web系统中一直都是被反覆用到的。在实际套用中经常会遇到对档案和目录的创建、修改、删除等操作。本章将主要介绍如何使用php对档案系统以及文本数据进行操作。
1.1 php中目录操作详解2
1.1.1 打开目录2
1.1.2 关闭目录3
1.1.3 读取目录中的档案3
1.1.4 创建目录3
1.1.5 删除目录4
1.2 php中档案操作详解4
1.2.1 打开档案4
1.2.2 关闭档案5
1.2.3 读取档案5
1.2.4 写入档案6
1.2.5 删除档案6
1.2.6 複製档案7
1.3 本地档案的操作实例——小型留言本7
1.3.1 留言发表模组7
1.3.2 浏览模组9
.1.4 远程档案的操作实例10
1.5 档案的上传与下载10
1.5.1 档案的上传10
1.5.2 档案的下载11
1.6 小结12
第2章 字元的处理与正则表达式13
在php中,对于字元的处理是一个很重要的部分,很多套用中都包含有字元处理的功能,而正则表达式则是有效地处理一些複杂字元操作的便利方式。本章将重点介绍php中的一些常见字元处理操作及正则表达式的套用。
2.1 字元类型的特殊性13
2.2 字元的显示与格式化14
2.2.1 字元的显示14
2.2.2 字元的格式化14
2.3 常见的操作15
2.3.1 字元串重複操作——str_repeat15
2.3.2 字元串替换操作——str_replace和str_ireplace16
2.3.3 字元串分解操作——str_split17
2.3.4 字元串单词数的计算函式——str_word_count18
2.3.5 字元串查找操作——strstr19
2.3.6 获得字元串长度——strlen19
2.3.7 获得字元串子串——substr19
2.4 正则表达式简介20
2.5 正则表达式与字元操作综合套用20
2.5.1 获得与模式匹配的数组单元——preg_grep21
2.5.2 进行全局正则表达式匹配——preg_match_all21
2.5.3 进行正则表达式匹配——preg_match23
2.5.4 转义正则表达式字元——preg_quote24
2.5.5 执行正则表达式的搜寻和替换的函式——preg_replace25
2.5.6 通过回调函式执行正则表达式的搜寻和替换——preg_replace_callback25
2.5.7 用正则表达式进行字元串分割——preg_split26
2.6 字元操作的注意事项27
2.7 小结29
第3章 数组操作与数据结构算法30
数组是一个由若干同类型变数组成的集合,引用这些变数时可用同一名字。数组中的每一个变数都叫做数组的一个元素。在开发中,数组有广泛的用途。本章将对数组及一些数组的使用技巧作详细讲解。
3.1 一维数组与多维数组30
3.1.1 一维数组简介30
3.1.2 多维数组简介30
3.2 常用的数组操作31
3.2.1 数组的创建与调用31
3.2.2 数组的更新32
3.2.3 数组元素的遍历33
3.3 数组索引与键值的操作技巧34
3.4 数组的排序36
3.4.1 递增排序——sort36
3.4.2 递减排序——rsort36
3.4.3 数组排序——array_multisort37
3.5 几种数组的套用实例38
3.5.1 顺序查找38
3.5.2 二分法查找39
3.5.3 使用array_search函式进行查找39
3.5.4 线性表的入栈与出栈40
3.5.5 数组的合併42
3.5.6 数组的拆分43
3.5.7 随机排序44
3.6 小结45
第4章 php程式调试46
在php的编写过程中,错误是不可避免的,如何有效地调试并修复错误是一个程式设计师必备的一种能力。php提供了很好的错误提示,并且通过与eclipse工具结合可以很方便地进行程式调试。本章将对php中的错误类型和程式调试方法进行详细讲解。
4.1 php中的错误类型46
4.1.1 语法错误46
4.1.2 语义错误47
4.1.3 逻辑错误47
4.1.4 注释错误47
4.1.5 运行时错误48
4.2 php程式调试策略48
4.2.1 php的错误级别48
4.2.2 打开php的错误报告49
4.2.3 使用print进行程式调试50
4.3 使用phpeclipse进行php程式调试51
4.3.1 使用eclipse编写php程式的好处51
4.3.2 phpeclipse的安装与启动51
4.3.3 phpeclipse的使用52
4.3.4 phpeclipse的语法错误强调功能53
4.3.5 phpeclipse的调试界面54
4.3.6 使用phpeclipse调试php代码的常见问题57
4.4 错误的处理58
4.4.1 错误的隐藏58
4.4.2 错误信息的定製59
4.4.3 逾时错误的处理60
4.5 小结61
第5章 php中的异常处理62
上一章介绍了如何调试php中的错误,这些错误通常是在实际编程中因为程式设计师的失误或者设计错误造成的。在实际运行过程中,往往还可能存在一些环境错误。例如,档案无法找到或者资料库无法打开等。这些环境错误可以通过if语句的判断来识别。,php还提供了一种更好的异常处理方法,可以有效地解决因为环境错误带来的异常。本章将主要介绍php中的异常处理方法。
5.1 异常处理的原理62
5.2 php中的异常处理62
5.2.1 异常类exception63
5.2.2 异常抛出关键字throw64
5.2.3 异常捕获语句try-catch65
5.2.4 异常处理函式设定set_exception_handler66
5.2.5 完整的异常信息67
5.3 扩展的异常处理类68
5.4 异常的传递与重掷71
5.5 小结73
第6章 php与表单74
在web应用程式的开发中,通常使用表单来实现程式与用户输入的互动。用户通过在表单上输入数据,将一些信息传输给网站的程式以进行相应的处理。当用户在web页面中的表单内填写好信息以后,可以通过单击按钮或连结来实现数据的提交。本章将主要介绍php中表单的套用,php程式通过接收用户在表单中输入的信息实现与用户的互动。
6.1 html表单简介74
6.1.1 表单标籤form74
6.1.2 输入标籤input与文本框75
6.1.3 按钮76
6.1.4 单选框与複选框77
6.1.5 多行文本域标籤textarea78
6.1.6 下拉框与列表框标籤select79
6.2 表单数据的接收79
6.2.1 get方法80
6.2.2 post方法82
6.3 常用表单数据的验证方法83
6.3.1 姓名验证83
6.3.2 日期验证84
6.3.3 e-mail地址验证84
6.3.4 密码栏位的验证84
6.3.5 改进的用户信息输入程式85
6.4 url编码解码函式87
6.4.1 编码字元串——urlencode87
6.4.2 解码字元串——urldecode87
6.5 小结88
第7章 php与javascript互动89
前面几章介绍了如何使用php语言来实现一些基本操作。php是一种后台语言,在执行时会将php程式的运行结果以静态html的形式返回给客户端。也就是说,在客户端并不能看见php代码。本章将要介绍一种流行的在客户端执行的前台程式语言——javascript。在实际套用中,往往会结合套用后台语言和前台语言以实现一些需要的功能。
7.1 javascript简介89
7.2 javascript的数据类型89
7.3 javascript程式设计基础90
7.3.1 在html中嵌入javascript90
7.3.2 变数91
7.3.3 注释91
7.3.4 函式的定义与调用92
7.3.5 条件语句92
7.3.6 循环语句95
7.3.7 对象97
7.3.8 事件98
7.4 php动态生成javascript代码99
7.4.1 多行输出99
7.4.2 单行输出99
7.4.3 php动态生成javascript实例——进度条100
7.5 javascript中调用php程式101
7.5.1 页面的跳转101
7.5.2 隐性调用php程式102
7.6 javascript和php综合实例——表单验证102
7.6.1 表单设计103
7.6.2 javascript代码设计104
7.6.3 php代码设计105
7.6.4 代码的运行106
7.7 小结107
第2篇 php与资料库
第8章 关係型资料库的基础知识110
在第一篇中,介绍了php的各种基本套用。从本章开始,将介绍php与资料库的结合使用。本章将主要介绍一些关係型资料库的基础知识。
8.1 关係型资料库与关係型资料库系统的介绍110
8.2 关係型资料库系统的结构与运行过程111
8.2.1 关係型资料库系统的层次结构111
8.2.2 关係型资料库系统的运行过程111
8.3 常用关係型资料库的介绍112
8.3.1 mysql112
8.3.2 oracle112
8.3.3 sybase113
8.3.4 db2113
8.3.5 sql server113
8.4 sql语言简介113
8.5 常见资料库设计问题114
8.6 关係型资料库的设计原则114
8.6.1 第一範式(1nf)115
8.6.2 第二範式(2nf)115
8.6.3 第三範式(3nf)116
8.7 资料库设计的方法与步骤116
8.7.1 需求分析117
8.7.2 概念设计的e-r方法121
8.7.3 资料库逻辑设计方法121
8.7.4 物理设计阶段124
8.7.5 资料库实施阶段124
8.7.6 资料库运行和维护阶段124
8.8 小结124
第9章 mysql的安装与操作125
上一章对资料库管理系统的基本特点作了一些简要介绍,并且介绍了常见的几款关係型资料库系统,mysql就是其中之一。在与php的套用中,mysql是最常用到的一款。本章将主要介绍如何安装和配置mysql资料库伺服器,并对mysql资料库伺服器的一些常见操作加以介绍。
9.1 mysql资料库伺服器介绍125
9.2 安装与配置125
9.2.1 下载mysql125
9.2.2 mysql的安装126
9.2.3 mysql的配置127
9.2.4 mysql的启动与关闭129
9.3 资料库与表的创建129
9.3.1 登录与退出mysql命令行管理模式130
9.3.2 mysql的资料库操作130
9.3.3 表的创建132
9.4 数据类型的介绍134
9.5 索引与唯一值的介绍135
9.6 数据的操作136
9.6.1 表的修改136
9.6.2 表的删除137
9.6.3 数据的查询137
9.6.4 数据的插入142
9.6.5 数据的更新143
9.6.6 数据的删除144
9.7 小结144
第10章 mysql与php的套用145
上一章介绍了如何通过mysql命令行对mysql资料库进行操作。在php中,使用mysql扩展来实现对mysql资料库的操作。其基本操作方法与在命令行上进行操作大致相同,只是操作命令都是写到php脚本中来完成的。本章将介绍如何使用php对资料库操作,并具体介绍php与mysql的结合使用。
10.1 php结合资料库套用的优势145
10.2 web资料库的工作原理145
10.3 使用php操作mysql资料库146
10.3.1 资料库伺服器的连线与断开146
10.3.2 选择资料库147
10.3.3 执行sql语句147
10.3.4 获得查询结果集中的记录数149
10.3.5 获得结果集中的某一条记录149
10.3.6 逐行获取结果集中的每一条记录150
10.3.7 结果集的分页152
10.3.8 用户动态添加记录153
10.3.9 用户动态更新记录155
10.3.10 用户动态删除记录157
10.4 使用php获取mysql资料库的信息158
10.4.1 获取资料库的信息159
10.4.2 获取表的信息159
10.4.3 获取列的数目160
10.4.4 获取列的名称160
10.4.5 获取列的数据类型160
10.4.6 获取列的长度161
10.4.7 获取列的标誌161
10.4.8 一个完整的查看錶中各列属性的实例162
10.5 常见问题与解决方案162
10.6 小结164
第11章 资料库中的程式逻辑165
上一章介绍了使用php对mysql资料库进行存取,在一般性的套用中,使用php直接对资料库进行存取的方法套用非常广泛。有时候,一些基本的资料库套用可能会被反覆用到。如果使用php反覆执行这一相同操作,不仅麻烦而且会影响代码的运行效率。
,在某些时候,对于一些小型并且频繁使用的资料库操作,可以将其交给资料库来完成。本章将以mysql资料库为例,介绍如何在资料库中实现这些程式逻辑。
11.1 资料库程式逻辑与php程式逻辑的分体设计原则165
11.2 资料库程式逻辑与数据的关係165
11.3 存储过程的设计166
11.3.1 定界符重定义166
11.3.2 存储过程的创建与调用167
11.3.3 存储过程的参数168
11.3.4 複合语句170
11.3.5 变数170
11.3.6 条件语句172
11.3.7 循环语句173
11.3.8 游标175
11.3.9 存储过程的删除177
11.4 触发器的设计177
11.4.1 触发器的创建与触发177
11.4.2 触发器的删除178
11.5 php与存储过程、触发器178
11.5.1 php调用存储过程178
11.5.2 php调用触发器179
11.6 小结180
第12章 session与cookie181
在资料库套用中,难免会涉及用户登录功能的编写。在一些系统中,往往也需要识别用户的身份。,session与cookie是web套用特别是资料库套用中不可或缺的两个要素。正是由于session和cookie的存在才使页面间信息的安全传递成为可能。本章将结合资料库的使用实例来介绍php中session和cookie的套用。
12.1 session与cookie简介181
12.2 php中session的实现181
12.2.1 标识开始使用session182
12.2.2 session预定义数组182
12.2.3 session的检测与注销182
12.2.4 php中session处理的定製183
12.3 session套用实例——登录验证187
12.3.1 资料库设计187
12.3.2 html表单的设计187
12.3.3 验证页面的编写188
12.3.4 欢迎页面的编写189
12.3.5 注销页面的编写189
12.3.6 代码的运行189
12.3.7 代码的改进190
12.4 php中cookie的实现191
12.4.1 cookie语法格式191
12.4.2 cookie预定义数组191
12.4.3 创建一个cookie191
12.4.4 创建一个有时间限制的cookie192
12.4.5 创建一个有範围限制的cookie192
12.4.6 删除cookie193
12.4.7 浏览器重定向193
12.4.8 cookie的常见问题193
12.5 cookie套用实例——登录验证194
12.5.1 html表单的设计194
12.5.2 验证页面的编写194
12.5.3 欢迎页面的编写195
12.5.4 注销页面的编写196
12.5.5 代码的运行196
12.6 cookie与session的比较197
12.7 小结197
第13章 mysql与php的套用实例——留言本198
在前面几章中,介绍了mysql与php结合使用的方法,以及如何在php中使用session和cookie。本章将从一个php留言本的整体设计入手,详细介绍在实际套用中如何使用php结合mysql开发基于web的应用程式。
13.1 留言本实例的系统分析198
13.1.1 系统简介198
13.1.2 系统模型设计198
13.1.3 资料库设计199
13.1.4 公共功能设计200
13.2 使用mysql与php创建一个留言本200
13.2.1 查看留言功能201
13.2.2 发表留言功能203
13.2.3 管理员身份验证功能205
13.2.4 管理首页设计206
13.2.5 留言回复功能208
13.2.6 留言删除功能209
13.2.7 留言回复删除功能210
13.2.8 留言审批功能210
13.2.9 退出管理员登录功能211
13.3 小结211
第14章 postgresql与php的套用212
前面几章对mysql资料库系统与php的套用作了一些详细介绍。本章将向读者介绍一种常与php结合使用的资料库系统postgresql。通过学习本章,读者将不仅掌握一些postgresql的常用操作方法,也将对如何使用php操作postgresql有一个初步的了解。
14.1 postgresql简介212
14.2 postgresql的安装212
14.2.1 postgresql的下载212
14.2.2 postgresql的安装步骤213
14.2.3 postgresql服务的启动与停止214
14.3 postgresql的基本操作214
14.3.1 pgadmin iii的启动214
14.3.2 伺服器的连线214
14.3.3 创建一个新资料库215
14.3.4 创建一个表215
14.3.5 对表中数据的操作217
14.3.6 sql语句的执行217
14.4 使用php存取postgresql资料库218
14.4.1 使用php的postgresql扩展218
14.4.2 资料库的连线与关闭218
14.4.3 执行sql语句219
14.4.4 获得查询结果集中的记录数220
14.4.5 逐行获取结果集中的每一条记录221
14.4.6 数据的插入、更新和删除222
14.4.7 执行动态sql语句225
14.4.8 information_schema227
14.5 小结228
第15章 sql server与php的套用229
前面两章对php与mysql和postgresql资料库伺服器的连线进行了简单介绍。在实际套用中,由于mysql和postgresql的大型数据处理能力比较差,因而往往使用较大型的资料库系统进行部署。sql server就是微软推出的一款适合较大型系统使用的资料库伺服器软体。本章将对sql server与php的套用进行介绍。
15.1 sql server简介229
15.2 sql server的安装230
15.2.1 sql server的安装步骤230
15.2.2 sql server management studio231
15.3 sql server的基本操作232
15.3.1 创建一个资料库232
15.3.2 创建一个表232
15.3.3 对表中数据的操作233
15.3.4 sql语句的执行233
15.4 使用php存取sql server资料库234
15.4.1 使用php的mssql扩展234
15.4.2 资料库的连线与关闭234
15.4.3 执行sql语句235
15.4.4 获得查询结果集中的记录数236
15.4.5 逐行获取结果集中的每一条记录237
15.5 小结239
第16章 oracle与php的套用240
上一章介绍了sql server与php的套用。与sql server类似,oracle是甲骨文公司推出的一款大型资料库管理系统。在实际套用中,oracle具有更高的数据处理和管理能力。,oracle受到了很多大型企业的青睐。本章将介绍oracle的基本操作以及与php的套用。
16.1 oracle简介240
16.2 oracle的安装241
16.2.1 oracle的安装过程241
16.2.2 oracle application express241
16.3 oracle的基本操作242
16.3.1 创建一个表242
16.3.2 对表中数据的操作244
16.3.3 sql语句的执行244
16.4 使用php存取oracle资料库245
16.4.1 使用php的oci8扩展245
16.4.2 资料库的连线与关闭246
16.4.3 执行sql语句246
16.4.4 逐行获取结果集中的每一条记录247
16.5 小结248
第17章 不同资料库的差异249
市场上流行的资料库有很多种,虽然这些资料库在开发时遵循同样的一个标準,,每种资料库都有一些与其他同类产品不一样的地方。本章将主要介绍不同种资料库间的差异,并对php与不同资料库的操作上的差异作一些介绍。
17.1 sql语言标準以及常见关係型资料库的sql扩展249
17.1.1 ansi sql语言标準249
17.1.2 mysql对ansi sql的扩充250
17.1.3 sql server的t-sql251
17.1.4 oracle的pl/sql252
17.2 php资料库套用的差异253
17.2.1 mysql与php的套用253
17.2.2 postgresql与php的套用253
17.2.3 sql server与php的套用254
17.2.4 oracle与php的套用255
17.2.5 sqlite与php的套用255
17.2.6 access与php的套用256
17.2.7 odbc与php的套用256
17.3 小结258
第3篇 php的高级套用
第18章 pear、pecl的套用260
本书前面的章节介绍了php的基本使用以及与资料库结合的实例。通过对前面的学习,读者应该能够使用php设计并实现一些常见的功能了。很多时候,并不需要自己逐行完成套用中的所有代码,因为很多常见的功能可能早已被人开发出来了。如果能够有效地利用这些资源,就能在实际开发中达到事半功倍的效果。本章将介绍的pear与pecl就是这样的资源库。
18.1 pear与pecl的介绍260
18.2 pear类库组件的安装260
18.3 pear类库的安装与使用264
18.3.1 查看已安装pear包264
18.3.2 查看pear包的详细信息264
18.3.3 安装一个pear包265
18.3.4 pear包的升级266
18.3.5 pear包的使用266
18.4 常用的pear类库实例266
18.4.1 使用db类库进行资料库查询267
18.4.2 使用auth_http类库进行身份校验269
18.4.3 使用html_template_it类库进行模板替换271
18.5 pecl扩展库的安装与使用272
18.6 pecl扩展库套用实例——zip扩展272
18.6.1 zip扩展的安装273
18.6.2 一个zip扩展套用实例273
18.7 小结274
第19章 adodb类库套用275
本书第2篇介绍了php与mysql等几种常用资料库的结合使用。php提供了多种资料库访问组件来访问不同类型的资料库。php的这种机制为php程式设计师製造了很多麻烦,为了访问不同种类的资料库,不得不记住多种多样的资料库存取函式。而本章将要介绍的adodb类库则有效地解决了这个问题。adodb类库通过对不同资料库的差异封装,可使php套用可以轻鬆地在不同的资料库之间进行切换。
19.1 adodb介绍275
19.1.1 adodb的优势275
19.1.2 adodb的适用场合276
19.2 adodb类库的安装与配置276
19.2.1 adodb的下载与安装276
19.2.2 adodb的第一个测试程式276
19.3 adodb的常用资料库操作278
19.3.1 连线资料库278
19.3.2 数据的插入、更新和删除281
19.3.3 数据查询281
19.3.4 记录分页的实现283
19.3.5 多个资料库的连线方法285
19.4 adodb的程式调试286
19.5 小结288
第20章 fpdf类库套用289
pdf文档格式是当前流行的电子文档与电子表格的一种标準格式。pdf提供了完善的压缩处理,无论创建者创建的pdf文档使用了什幺字型,使用了什幺样的图片或者版式设计,浏览者都可以通过免费的adobe reader对其进行阅读。本章将要介绍的是一个可以用php创建pdf文档的类库fpdf。
20.1 fpdf简介289
20.2 fpdf的安装与配置289
20.3 fpdf创建pdf文档289
20.3.1 fpdf创建hello world290
20.3.2 在pdf中插入图片291
20.3.3 页眉与页脚292
20.3.4 绘製表格293
20.4 为fpdf增加中文支持295
20.5 fpdf的实际套用296
20.5.1 为文章系统创建pdf页面297
20.5.2 动态生成企业产品名录299
20.6 小结300
第21章 php的快取与静态化套用301
前面已经介绍了许多php套用的例子,这些例子无一例外是通过访问php脚本档案来完成的。用户每次在浏览器端的访问都是对php脚本的执行过程,程式根据用户的需要返回信息。对于一些大型系统,访问量往往很大,频繁的动态操作与资料库操作大大加重了伺服器的负担。
在这种情况下,通常使用快取技术或者静态化操作。也就是将php脚本的页面结果放到快取中,或者放到静态html档案中。这样,访问者在访问页面时,不必重新执行动态php代码即可获得结果,可大大缓解伺服器的负担。本章将介绍快取机制与静态化的原理,以及使用php实现静态化的方法。
21.1 为什幺要静态化301
21.2 大型套用的快取机制与静态化304
21.2.1 快取机制304
21.2.2 静态化机制305
21.3 php如何实现静态化305
21.3.1 根据模板生成静态页面305
21.3.2 资料库与静态页的关係306
21.3.3 静态页内容的修改308
21.3.4 模板的替换309
21.3.5 静态页上的动态操作310
21.3.6 静态页面档案的目录311
21.4 小结314
第22章 php与xml格式操作315
xml是一种流行的半结构化档案格式,以一种类似资料库的格式存储数据。在实际套用中,一些简单的、安全性较低的数据往往使用xml档案的格式进行存储。这样做一方面可以通过减少与资料库的互动性操作提高读取效率,另一方面可以有效利用xml的优越性降低程式的编写难度。
php提供了一整套的读取xml档案的方法,很容易就可以编写基于xml的脚本程式。本章将介绍php与xml的操作方法,并对几个常用的xml类库作一些简要介绍。
22.1 xml简介315
22.2 简单的xml操作316
22.2.1 创建一个simplexml对象316
22.2.2 读取simplexml对象中的xml数据318
22.2.3 xml数据的修改322
22.2.4 标準化xml数据322
22.2.5 xml数据的存储322
22.3 xml文档的动态创建323
22.3.1 dom简介324
22.3.2 dom文档的创建与使用324
22.3.3 dom元素的操作327
22.3.4 dom节点的操作329
22.3.5 dom组件操作实例329
22.4 xslt的使用330
22.4.1 xslt简介331
22.4.2 使用php与xslt生成html页面332
22.5 xml套用实例一——留言本333
22.5.1 xml档案结构设计333
22.5.2 提交页面的编写334
22.5.3 显示页面的编写335
22.6 xml套用实例二——为网站生成rss页面336
22.6.1 什幺是rss336
22.6.2 rss页面的编写338
22.7 小结339
第23章 smarty类库340
前面的章节介绍了很多在html页面中内嵌php代码的例子。随着web技术的不断发展,很多web程式设计师已经不再满足于这种在html页面中内嵌php代码的方法。因为这样做的一个很大弊端是为后期维护带来了很多麻烦,程式设计师不得不修改php代码来迎合页面设计的改动。
本章要介绍的smarty类库有效地解决了这一问题。smarty类库通过建立模板库来存放静态html页面中的html代码,并使用php代码对其中的元素进行赋值。这样,当页面的设计发生变化时,只需要修改模板页面就可以了。
23.1 smarty简介340
23.2 smarty的安装与配置341
23.2.1 smarty的安装341
23.2.2 smarty的配置341
23.3 smarty程式设计342
23.3.1 简单的smarty程式设计342
23.3.2 模板对象属性的定义343
23.3.3 smarty程式编写的一般步骤344
23.4 smarty模板设计344
23.4.1 模板中的变数344
23.4.2 变数的修饰345
23.4.3 区域循环方法346
23.4.4 模板中的条件判断348
23.4.5 外部档案的载入350
23.5 smarty的实际套用——多模板网站351
23.5.1 模板的设计351
23.5.2 页面实现352
23.6 小结353
第24章 thinkphp框架354
上一章介绍了使用smarty类库进行套用系统开发。smarty使用模板构架有效地分离了代码与页面,当页面发生变化的时候,程式设计师并不需要修改代码。本章将要介绍一种基于模板的开发框架——thinkphp框架。
thinkphp框架是近两年刚刚发展起来的一个php套用开发框架。该框架借鉴了很多优秀框架的经验和模式,使用最通用的mvc构架和面向对象理念,是一款可以实现网站快速开发的优秀的轻量级框架。
24.1 thinkphp的安装与项目创建354
24.1.1 thinkphp的获取与安装354
24.1.2 项目入口档案354
24.1.3 项目的创建355
24.2 项目的配置355
24.3 控制器类的创建356
24.3.1 控制器的模组与操作356
24.3.2 url的处理358
24.4 模型类的创建358
24.4.1 模型的定义与实例化359
24.4.2 资料库的连线与操作360
24.5 模板档案的编写362
24.5.1 模板中的变数362
24.5.2 模板中函式的使用363
24.5.3 几种基本标籤的使用364
24.6 thinkphp套用实例——线上日程表366
24.6.1 资料库的设计366
24.6.2 模板的设计367
24.6.3 控制器的实现368
24.7 小结369
第25章 zend framework框架370
随着web技术的发展,传统的编程模式已经越来越不能满足日益快速的技术发展。近些年来,一些致力于整合功能的框架技术蓬勃发展起来。上一章介绍的thinkphp框架是一个可以满足基本需要的轻量级框架。而由zend公司构建的框架zend framework则更适合大型系统的开发。本章将简要介绍zend framework的使用方法。
25.1 zend framework的安装与项目创建370
25.2 dispatcher与bootstrap372
25.3 控制器程式的编写372
25.3.1 首页控制器程式的编写373
25.3.2 其他页面控制器程式的编写374
25.4 视图档案的调用376
25.4.1 默认视图档案的使用376
25.4.2 模板档案的调用376
25.5 数据模型的生成377
25.5.1 资料库的连线377
25.5.2 数据模型的创建378
25.5.3 数据模型的使用379
25.6 用户表单的处理380
25.6.1 用户表单的生成380
25.6.2 表单数据的验证与过滤382
25.7 zend framework套用实例——留言本384
25.8 小结388
第26章 cakephp框架389
cakephp是近两年来新生的一款开源的php框架。该框架的设计理念来自ruby的rails框架,使php程式设计师可以比较迅速地创建web应用程式。cakephp框架使用了mvc体系结构,兼容php 4和php 5,并且拥有很灵活的数据模型与许可权管理机制。,cakephp受到了越来越多php程式设计师的关注与青睐。cakephp的最新版本为1.3.0,本章将以该版本为例简要介绍cakephp的使用方法。
26.1 cakephp的安装与配置389
26.2 scaffolding简介391
26.3 cakephp的数据模型392
26.3.1 数据模型的定义392
26.3.2 数据的查询393
26.3.3 数据的保存395
26.3.4 数据的删除397
26.3.5 对象的关联398
26.4 控制器的编写400
26.4.1 控制器的基本使用400
26.4.2 控制器的属性与方法401
26.5 视图的调用404
26.5.1 视图的布局404
26.5.2 视图的元素405
26.5.3 视图的快取405
26.6 acl许可权控制406
26.6.1 什幺是acl406
26.6.2 使用配置档案定义许可权407
26.6.3 使用资料库定义许可权408
26.7 cakephp套用实例——员工工资单409
26.7.1 登录框与许可权控制409
26.7.2 工资单页面的编写410
26.8 小结412
第27章 symfony框架413
前面几章介绍了几种常见的php开发框架。本章将继续介绍另一种近几年流行起来的新的开发框架symfony。symfony框架也是一款基于mvc架构的框架,并且使用到了一些其他php开源项目的部分代码以增强其功能。,symfony受到了越来越多大型项目的青睐。symfony框架的最新版本为1.4.3,本章将以该版本为例简要介绍symfony的使用方法。
27.1 symfony的安装413
27.2 开始一个新项目414
27.3 symfony的数据模型416
27.3.1 schema的编写416
27.3.2 数据模型初始化420
27.4 控制器与视图421
27.4.1 项目的基本构架421
27.4.2 视图的布局422
27.4.3 控制器与模板424
27.5 管理生成器426
27.5.1 管理后台的生成427
27.5.2 管理后台的配置427
27.6 symfony套用实例——个人部落格430
27.7 小结433
第28章 php与图像操作434
php不仅可以用来生成html页面,还可以用来创建和操作二进制档案,例如图片。使用php程式动态生成图片可以实现生成缩略图、验证码等多种功能,在实际套用中很常用。在php中,通常使用gd库来实现对图像的操作。本章将介绍如何使用gd库来操作图像档案。
28.1 php图像函式馆简介434
28.2 gd库的配置434
28.3 一个简单图像创建程式436
28.4 gd库的套用实例437
28.4.1 使用gd库创建图片缩略图437
28.4.2 使用gd库生成验证码439
28.4.3 使用gd库下载远程图片441
28.4.4 使用gd库为页面增加水印441
28.5 小结442
第29章 jpgraph创建统计图443
上一章介绍了如何使用gd库来创建图像。使用gd库提供的各种函式可以生成多种图像,,如果需要在php中创建一些统计图,使用gd库就显得很麻烦了。本章将要介绍一种专门用于输出统计图的jpgraph库。该库在数据统计等方面有很大优势。在实际套用中,可以很容易使用jpgraph生成大方得体的统计图。
29.1 jpgraph简介443
29.2 jpgraph的安装与配置443
29.2.1 jpgraph的安装443
29.2.2 jpgraph的配置444
29.3 jpgraph绘製统计图实例444
29.3.1 简单的x-y坐标图444
29.3.2 改进的x-y坐标图447
29.3.3 柱形图450
29.3.4 饼图451
29.3.5 3d饼图452
29.4 jpgraph套用实例——工厂销量查询系统453
29.5 小结457
第30章 php访问ldap伺服器458
ldap的全称是“轻量级目录访问协定(lightweight directory access protocol)”,是一种简单的目录协定。所谓目录,是一种专门的资料库,可以服务于任何应用程式。在企业套用中使用ldap可以让企业範围内的所有应用程式从ldap目录中获取信息,使应用程式可以通过网路直接从ldap目录获取信息,而不再局限于作业系统与伺服器的类型。本章将主要介绍如何使用php来访问ldap。
30.1 ldap简介458
30.2 ldap伺服器的安装与配置459
30.2.1 openldap的安装459
30.2.2 openldap的配置460
30.2.3 openldap的启动与关闭461
30.2.4 openldap的数据操作462
30.2.5 phpldapadmin简介463
30.3 php中ldap扩展的配置464
30.4 php与ldap的相关操作464
30.4.1 连线ldap伺服器464
30.4.2 绑定ldap伺服器465
30.4.3 断开ldap伺服器465
30.4.4 查询ldap目录内容465
30.4.5 获得查询结果中的值467
30.4.6 计算查询结果中的记录数468
30.4.7 向ldap添加一条新记录469
30.4.8 更新ldap中的一条记录469
30.4.9 从ldap中删除一条新记录470
30.4.10 错误处理470
30.5 使用ldap验证用户身份471
30.6 小结472
第31章 php与邮件系统473
在实际套用中,通常需要使用邮件系统来与网站的访问者交流。例如,一个网站的新注册用户可以通过邮件来获取注册确认信息,也可以通过邮件来找回密码等。,在一些常见的网站系统中,往往包含邮件传送的功能。本章将介绍如何使用php来传送邮件。
31.1 php邮件传送功能配置473
31.1.1 php中的smtp功能配置473
31.1.2 建立自己的smtp伺服器474
31.2 php中的mail函式476
31.2.1 简单的邮件传送方法476
31.2.2 传送html格式文本477
31.2.3 传送带附属档案的邮件477
31.3 一个简单的邮件传送类479
31.3.1 邮件传送类的创建479
31.3.2 邮件传送系统的实现481
31.4 小结483
第32章 php最佳化器与加速器484
php代码在运行时是通过编译器编译成中间代码,然后再被伺服器运行得到用户所需要的结果。,中间代码的优劣直接决定了代码的最终运行速度。有一些常见的php加速器可以通过对中间代码进行最佳化来提高php代码的运行速度。这样,网站的访问者就可以更快地打开网页。
本章将介绍几款常见的php加速器,读者可以根据实际情况选择其中的一款安装,从而有效地提高php的运行效率。
32.1 最佳化器zend optimizer484
32.1.1 zend optimizer的安装484
32.1.2 zend optimizer的配置486
32.2 加速器php accelerator487
32.2.1 php accelerator的安装487
32.2.2 php accelerator的配置488
32.3 开源的最佳化器turck mmcache488
32.3.1 turck mmcache的安装489
32.3.2 turck mmcache的配置489
32.4 开源的加速器eaccelerator490
32.5 小结490
第4篇 php与实际项目
第33章 用php构建内容管理系统cms492
cms是“内容管理系统(content management system)”的缩写,任何基于内容的网站系统都可以称为cms。例如,文章管理、图片管理以及综合网站管理程式都是cms的典型实现。一般的cms系统都是基于模板设计,网站开发人员可以通过简单地修改模板的设计快速实现网站所需功能。本章将以一个简单的文章管理程式为例,说明如何开发一个cms系统。
33.1 了解cms需求492
33.2 资料库设计492
33.3 关键技术的实现495
33.3.1 资料库连线公用代码496
33.3.2 网站开关的设计496
33.3.3 模板更换机制496
33.3.4 html编码转换497
33.4 页面代码设计497
33.4.1 首页的实现497
33.4.2 注册页面的实现501
33.4.3 分类文章列表页面与文章显示页面的实现503
33.4.4 投稿页面与添加新文章页面的实现507
33.4.5 文章管理页面的实现509
33.4.6 文章类别维护页面的实现513
33.4.7 网站参数配置页面的实现518
33.4.8 网站模板管理页面的实现521
33.4.9 退出登录页面的实现524
33.5 小结525
第34章 用php构建搜寻引擎526
网际网路时代是一个信息爆炸的时代,面对着信息高速膨胀的网际网路,怎样快捷有效地得到自己所需要的信息成为了一个关键的课题。于是,各种各样的搜寻引擎在网际网路上诞生了出来,例如,google、yahoo和百度等,都是流行的搜寻引擎。这些搜寻引擎已经逐渐成为人们生活不可或缺的一部分。
本章将要介绍如何使用php来进行信息搜寻,以及调用这些现有的搜寻引擎进行搜寻。
34.1 php对资料库数据的搜寻526
34.1.1 资料库创建526
34.1.2 搜寻页面的设计527
34.1.3 内容显示页面的设计528
34.1.4 系统集成的调度策略529
34.2 php对文本档案的搜寻530
34.3 php对现有搜寻引擎的调用531
34.4 小结533
第35章 php与企业办公自动化oa系统534
oa是办公自动化(office automation)的缩写。oa系统是基于internet或intranet的概念、以企业工作流为基础构建的办公自动化系统。oa系统能够有效地对企业信息进行管理,并且在企业内部共享信息。oa系统的存在改变了过去複杂低效的办公模式,使办公管理和决策变得更加简单。本章将以一个简单的oa系统为例来介绍如何使用php开发oa系统。
35.1 了解企业oa系统的需求534
35.2 资料库设计535
35.3 关键技术的实现536
35.3.1 根据登录用户的许可权进入不同的页面536
35.3.2 项目与任务状态的级联更新537
35.4 页面代码的设计538
35.4.1 公共资料库连线代码538
35.4.2 登录页面的设计538
35.4.3 管理员/经理项目列表页面的设计540
35.4.4 创建新项目页面的设计542
35.4.5 项目修改页面的设计545
35.4.6 普通员工任务列表页面的设计550
35.4.7 新账号分配页面的设计552
35.4.8 账号许可权设定页面的设计555
35.4.9 过期项目统计页面的设计558
35.4.10 经理项目分配情况统计页面的设计560
35.4.11 员工任务分配情况统计页面的设计561
35.4.12 公司项目运营情况统计页面的设计562
35.5 小结565
第36章 php与流程管理系统566
上一章介绍了如何使用php构建一个简单的oa系统。在企业的日常工作中,往往需要遵循一些流程来工作。例如,报销发票的流程可以是报销人提出申请→相关经理批准→财务主管批准→支付报销金额给报销申请人等。流程管理系统可以简单地实现对流程中各个过程进行追蹤并提示相关人员完成流程中相应的步骤。本章将以一个设备维修流程的管理系统为例简要介绍如何使用php来构建流程管理系统。
36.1 流程管理系统的需求566
36.2 资料库设计567
36.3 关键技术的实现569
36.3.1 使用触发器来记录请求更新日誌569
36.3.2 根据角色的不同对请求进行不同的操作569
36.4 页面代码的实现570
36.4.1 设备维修请求列表页面的实现570
36.4.2 提交新请求页面的实现572
36.4.3 需要执行操作的请求列表页面的实现574
36.4.4 对请求执行操作页面的实现576
36.4.5 操作日誌列表页面的实现582
36.5 小结584
第37章 php与资源管理系统585
前面两章站在企业层面上介绍了如何使用php创建企业oa系统和流程管理系统。常见的企业级系统还包括资源管理系统(enterprise resource management system,erm)。所谓资源包含企业中的网路资源、工程方面的资源和财务资源等。一个完整的资源管理系统应该包括对资源的数据存储、业务分析以及辅助决策等,并且要与其他现有系统具有良好的接口。本章将以一个小型库存资源管理系统为例,简要介绍如何使用php构建一个资源管理系统。
37.1 资源管理系统的需求585
37.2 资料库设计586
37.3 关键技术的实现588
37.3.1 使用sql计算奖金额度589
37.3.2 使用触发器来限制奖金额度589
37.3.3 使用存储过程从其他数据表获取数据590
37.3.4 自动生成php代码控制网站开关590
37.3.5 使用jpgraph生成统计图591
37.4 各功能模组的具体实现592
37.4.1 用户许可权认证的实现592
37.4.2 订单输入模组的实现593
37.4.3 库存管理模组的实现597
37.4.4 账目管理模组的实现601
37.4.5 奖金计算模组的实现606
37.4.6 年度统计模组的实现609
37.5 小结611
第38章 多国语言处理策略612
前面几章介绍了如何使用php来开发一些实际项目。随着信息全球化的高速发展,套用系统向全球化发展的趋势也越加明显。例如,一个跨国企业的办公系统可能要面向这家跨国企业分布在全球的多家分公司,在开发这个办公系统时可能就需要对多种语言提供支持。本章将以一个小型系统为例来介绍一下如何对php开发的系统提供多国语言支持的功能。
38.1 对字元编码与gb2312、gbk和utf-8的理解612
38.1.1 gb2312与gbk612
38.1.2 unicode、ucs与utf-8612
38.1.3 网页编码的实现613
38.2 gls设计思想简介614
38.3 客户端语言选项的设定与获取615
38.3.1 客户端语言选项的设定615
38.3.2 使用php获取客户端语言选项615
38.4 一个简单的带有多国语言支持的套用开发615
38.4.1 资料库设计615
38.4.2 页面代码的开发616
38.4.3 语言设定页面的开发620
38.4.4 语言配置档案选取页面的开发620
38.4.5 语言配置档案的设计621
38.5 小结624
第39章 php在入口网站中的套用625
在网际网路发达的今天,网民的数量也在高速增长,越来越多的大型网站通过将各种数据资源和网际网路资源结合起来构成了入口网站。入口网站通过将新闻系统、聊天室、bbs和电子商务等多种套用系统整合起来为用户提供了丰富的网际网路信息。本章将主要介绍php在入口网站中的一些套用。
39.1 入口网站的特点625
39.2 静态快取和动态快取626
39.2.1 静态快取与动态快取简介626
39.2.2 一个对系统实现静态快取的例子626
39.2.3 一个对系统实现动态快取的例子628
39.3 入口网站中的互动设计630
39.3.1 什幺是互动设计631
39.3.2 一个不好的互动设计例子631
39.3.3 改进的互动设计例子633
39.4 负载均衡技术简介635
39.4.1 常用的负载均衡技术635
39.4.2 常用的负载均衡算法636
39.5 一个使用用户排队机制解决网站大访问量的例子636
39.6 小结638
第5篇 php的扩展套用
第40章 php与网路客户端640
前面介绍了使用php构建伺服器端页面,用户可以通过浏览器访问远程伺服器上的php页面来实现与伺服器的互动操作。除此之外,php还可以用来开发网路客户端,用户可以在自己的主机上访问远程伺服器,甚至可以通过命令行来与远程伺服器进行互动。本章将介绍如何使用php访问远程web伺服器和ftp伺服器,以及使用命令行来运行php代码。
40.1 php访问远程web页面640
40.1.1 fsockopen函式640
40.1.2 一个远程提交数据的实例641
40.2 php订阅rss642
40.2.1 下载远程rss642
40.2.2 rss的解析与保存643
40.3 php访问ftp伺服器644
40.3.1 连线和断开ftp伺服器644
40.3.2 登录ftp伺服器644
40.3.3 获取档案列表645
40.3.4 档案的上传、下载和删除646
40.3.5 目录的创建和删除647
40.4 php的命令行模式648
40.4.1 php命令行程式简介648
40.4.2 执行参数的获取649
40.4.3 一个使用命令行方式访问ftp的实例649
40.5 小结652
第41章 php与xml-rpc、soap653
前面介绍了如何通过访问php页面来实现与伺服器的互动。除此之外,php还支持开发供程式调用的接口页面。通过这些接口,远程程式可以很容易地实现与伺服器的互动操作,而不需要複杂地通过对一般页面进行读取来进行互动。本章将介绍两种最常见的远程调用的技术以及使用php的实现方法。
41.1 xml-rpc简介653
41.1.1 客户端请求的xml格式653
41.1.2 伺服器回响的xml格式656
41.1.3 错误信息的xml格式656
41.2 php与xml-rpc的结合实例657
41.2.1 php的xml-rpc库介绍657
41.2.2 php伺服器端页面的编写658
41.2.3 php客户端页面的编写659
41.3 soap简介659
41.4 php的soap套用实例660
41.4.1 soap扩展库的使用方法660
41.4.2 伺服器端的编写661
41.4.3 客户端的编写662
41.5 小结662
第42章 php与web service663
上一章介绍了如何使用php通过xml-rpc和soap进行远程访问以及远程过程调用的方法,这些技术不单单实现了通过浏览器对页面的直接访问,而且提供了可供程式调用的函式为客户端程式提供了便利。这种技术往往被称为web service,在网际网路技术发展的今天,web service提供了一种可程式的数据接口方便了其他程式或客户端的调用。本章将介绍web service技术以及如何使用php来实现。
42.1 web service简介663
42.2 wsdl、uddi与web service664
42.2.1 wsdl简介664
42.2.2 uddi简介664
42.3 php与web service的互动操作665
42.3.1 nusoap类库665
42.3.2 php创建web service666
42.3.3 php访问web service668
42.4 小结670
第43章 php与ajax671
ajax是刚刚流行起来的一种技术,全称是asynchronous javascript and xml(异步javascript和xml)。ajax是多种技术的综合套用,主要包括javascript技术、xml技术、dom技术和xmlhttprequest控制项等。ajax作为web 2.0的一个重要技术,大大推动了web技术的发展。本章将结合php来简要介绍一下ajax的一些常见套用。
43.1 ajax简介671
43.1.1 ajax工作原理671
43.1.2 ajax的优势与劣势672
43.2 xmlhttprequest的使用672
43.2.1 ajax初始化672
43.2.2 xmlhttprequest的属性和方法673
43.2.3 简单的伺服器请求674
43.2.4 html档案的读取675
43.2.5 xml档案的读取677
43.3 php与ajax的互动679
43.3.1 使用get方式与php互动679
43.3.2 使用post方式与php互动681
43.4 ajax套用实例682
43.4.1 用户名唯一性验证的实现682
43.4.2 动态列表框的实现684
43.4.3 局部刷新页面的实现685
43.4.4 自动刷新页面的实现688
43.4.5 进度条的实现689
43.4.6 表单输入提示的实现691
43.5 小结693
第44章 php扩展的开发694
本书前面的章节介绍了php的开发与套用。在进行php开发时,有时难免遇到无法使用php解决或很难使用php来解决的问题,这时就需要使用php扩展功能来扩展php的功能了。本章将简要介绍如何在windows平台下进行php扩展的开发。
44.1 php扩展开发简介694
44.2 使用visual c++编写php扩展694
44.2.1 php扩展开发的前期準备695
44.2.2 php扩展代码模板的生成696
44.2.3 模板代码的修改与编译697
44.2.4 扩展模组的调用699
44.3 一个扩展套用实例的开发——简单加密解密函式700
44.3.1 加密函式的编写700
44.3.2 解密函式的编写701
44.3.3 测试代码的编写701
44.4 小结702