站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
PHP概述
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[PHP#PHP教程|上一页]] | {{template:开发语言导航}}</span> <div style="clear:both;"></div> == 历史 == 最初的 PHP 要追溯到 1995 年,当时一个名叫Rasmus Lerdorf 的独立软件开发承包人开发了一个Perl/CGI 脚本,可以让他了解有多少访问者阅读了他的在线简历。他的脚本执行两项任务:将访问者信息记入日志,显示网页访问者的数量。Web 虽然现在已经家喻户晓,但在当时却很年轻,所以类似的工具以前从未有过,于是人们向 Lerdorf 发送电子邮件咨询他的这个脚本。自此 Lerdorf 开始分发他的工具集,并称之为个人主页(PHP)。 <br> 由于对 PHP 工具集的呼声很高,这促使 Lerdorf 继续开发这种语言。他增加了一个能把在 HTML表单中输入的数据转换为符号变量的功能,从而允许导出到其他系统,这或许算得上是早期最突出的一次改进。为此,他选择用C 而不是 Perl 代码来进行后续的开发。对 PHP 工具集的不断增补在 1997年 11 月达到了顶峰,这时发行了 PHP 2.0,即“个人主页——表单解释器”( PHPFI)。由于 PHP 不断普及,所以 2.0 版本得到了来自全世界程序员的大量改进和提高。这个新 PHP 版本非常流行,很 快就有一个核心开发团队加入到 Lerdorf。他 们保持了原先在 HTML中直接加入代码的概念,重新编写了解析引擎,这就诞生了 PHP 3.0。到 1998 年 6 月发行版本 3.0 为止,已经有超过 5 万个用户在使用 PHP 改进其网页。<br> '''注解''' <br> 1997年还出现了一个变化,PHP的含义由Personal Home Page(个人主页)变成了HypertextPreprocessor(超文本预处理器)的缩写词。接下来的两年中,开发继续狂热地进行着,又增加了成百上千项功能,用户数量也在飞速增长。<br> 在 1999 年初,Netcraft(http://www.netcraft.com/)公布了一个保守的估计,称用户数已经超过了 100 万,这说明 PHP 已经成为了世界上最流行的脚本语言之一。它 的广泛流传甚至超出了开发人员最乐观的期望,并且很快用户们准备用 PHP 开发功能更强大的应用程序。两位核心开发人员(ZeevSuraski 和 Andi Gutmans)开始主动地彻底重新考虑 PHP 的工作方式,最终改写了 PHP 的解析器,称之为 Zend 脚本引擎。这些工作的最终成果就是 PHP 4 的发布。<br> ---- == PHP 4 == 2000 年5 月22 日,第一次正式宣布再次开发之后的大约18 个月,发布了PHP 4.0。许多人都认为PHP 4的发布是这种语言在企业级开发环境下的正式亮相,这 个观点也由于PHP的迅速普及得到了佐证。仅仅在发布后的几个月内,Netcraft(http://www.netcraft.com/)估计就有超过 360 万个域安装了PHP。 <br> === 特性 === PHP 4 包括了以下几项企业级的改进: <br> 改进了资源处理:<br> 可 扩展性是版本 3.X 的主要缺点之一。这 主要是因为设计者低估了这种语言,没考虑到它会大量用于大规模应用程序。最初并没有打算用这种语言开发企业级网站,但后来确实有这样的尝试,这就使得开发人员开始重新考虑这种语言的机制。最终促使在版本 4中对资源处理进行了大幅改进。<br> 面向对象的支持:<br> 版本 4 在一定程度上结合了面向对象的功能,尽管一般认为这只是一个很平常的实现。不过,对于使用传统面向对象程序设计(OOP)语言的用户来说,这个新特性在吸引这些用户方面起到了非常重要的作用。除了对象重载和运行时类信息,PHP 还支持标准的类和对象开发方法。版本 5 支持更复杂的 OOP 实现,第 5 章将介绍这方面的内容。<br> 内置 的会话处理支持 : <br> 版本 3.X 通过第三方包 PHPLIB(http://phplib.sourceforge.net)来支持 HTTP 会话处理,在 版本 4 中 HTTP 会话处理则是内置的功能。这个特性使得开发人员可以相当高效轻松地跟踪用户活动和偏好。第 15章将介绍 PHP 的会话处理功能。<br> 加密:<br> MCrypt(http://mcrypt.sourceforge.net)库引入到默认发行包中,为用户提供了完全加密和散列加密,使用的加密算法包括 Blowfish、MD5、SHA1 和三重 DES 等。第18 章将讨论 PHP 的加密功能。<br> ISAPI 支持:<br> 对 ISAPI 的支持使用户能够将 PHP 与微软的 IIS Web 服务器(作为一个 ISAPI模块)结合使用,大大提高了性能和安全性。<br> 内置 COM/DCOM 支持:<br> 对 Windows 用户来说,另 一个好处是 PHP 4 能够访问和实例化 COM对象。这项功能扩展了与 Windows 应用程序的互操作性。<br> 内置 Java 支持:<br> 这也是 PHP 在互操作性方面的一大进步,版本 4.0 支持 PHP 应用程序绑定Java 对象。<br> 与 Perl 兼容的正则表达式(PCRE)库:<br> Perl 语言一直以来在字符串解析领域雄霸天下,占据着统治地位。开发人员知道,如果想让 PHP 得到广泛认可,强大的正则表达式功能会起到重要作用。他们的做法只是集成 Perl 的功能,而不是重新开发,并将 PCRE 库的包集成在 PHP的默认发行包中(版本 4.2.0)。第 9 章将详细介绍这个重要的特性,并介绍经常引起混淆的正则表达式语法。<br> 除了这些特性外,版本 4 还添加了几百项功能,大大提升了这种语言的能力。本书中,我们将讨论其中大部分功能,因为这些功能在版本 5 中仍然很重要。<br> ---- === 缺点 === 在 PHP 语言的发展历程上,PHP 4 代表着一次巨大的飞跃。这个新版本带来的新功能、强大能力和可扩展性对开发新手和老手都产生了不小的震动,这 也使 PHP 在 Web 脚本领域确立了牢固的地位。但是,要想让用户对哪种语言矢志不渝是很困难的事情;程序员通常会有这样一种想法“你最近为我做了什么”。PHP 开发团队牢记这一点,因为不久以后他们就开始着手开展另一个里程碑性的任务,要在Web 脚本领域推出一个重量级语言(就像一个800 磅的大猩猩):PHP 5 <br> ---- == PHP5 == 版本 5 是 PHP 语言发展历程中的另一座分水岭。虽然前面的主要版本已经增加了许多库,版本 5则在现有的功能上又进行了许多改进,并且增加了成熟的编程语言体系结构才有的一些特性:<br> 极大地提高了面向对象能力:<br> PHP 的面向对象体系结构得到了改进,这是版本5 最突出的特点。版本 5 增加了很多功能,如显式构造函数和析构函数、对象克隆、类抽象、变量作用域和接口等。另外,PHP 在处理对象管理方面也有重大改进。<br> try/catch 异常处理:<br> 具有讽刺意味的是,在结构化编程语言中设计错误处理策略时,不仅非常容易出错,而且很难保持一致。为了解决这个问题,版本5 开始支持异常处理。在许多语言中,如C++、C#Python 和Java 等,异常处理长期以来一直都是错误管理方面的中流砥柱,它为建立标准化的错误报告逻辑提供了一种绝佳的方法。这种方便的新方法将在第8 章中介绍。<br> 改进的字符串处理:<br> 之前版本的 PHP 默认地将字符串看作数组,这也反映了 PHP 原先的数据类型观点不够严密。这种策略在版本 5 中有所调整,引入了一种专门的字符串偏移量(offset)语法,而以前的方法已经废弃不用。第9 章将讨论这种新语法带来的新特性、变化和效果。<br> 改进的XML 和Web 服务支持:<br> 现在的 XML 支持建立在 libxml2 库基础上,还引入一个很新但非常有前途的扩展包来解析和处理 XML:SimpleXML。此外,PHP 5 还支持 SOAP 扩展。第 20 章将介绍这两个新扩展,并介绍一些很棒的第三方Web 服务扩展。<br> 对 SQLite 的内置支持:<br> 开 发人员的脚步一直没有停止,还 为功能强大但很简洁的 SQLite 数据库服务器(http://www.sqlite.org/)提供了支持。如果开发人员需要一些重量级数据库产品中才有的特性,同时不希望带来相应的管理开销,SQLite 就能为这些开发人员提供一个方便的解决方案。第22 章将介绍 PHP 为这个强大的数据库引擎提供的支持。 <br> ---- == 实用性 == 自始以来,PHP 就是以实用性为目的而创建的。毕竟,Lerdorf 最初的意图不是设计一门全新的语言,而只是为了解决一个没有现成解决方案的问题。此外,PHP 早期的发展并非明确地希望改进语言本身,而只是要为用户增加功能。其结果就是建立了一个最低需求(minimalist)语言,不仅对用户的需求很低,对语言的语法需求也很低。对于刚入门的人来说,一个有用的 PHP 脚本可能只包含一行代码;与 C 不同,它不需要导入库函数。<br> PHP 语言很强调紧凑性,这还反映在它能嵌套函数。例如,通过在一行代码中按特定的顺序调用函数,可以对一个值进行一系列修改。<br> PHP 是一种类型松散的语言,这意味着不需要明确地创建变量、指派类型或撤销变量,当然也没有绝对禁止做这些操作。PHP 在内部处理这些情况,脚本中使用变量时 PHP 会动态创建变量,并使用最优推测规则自动指派变量的类型。<br> PHP 还会在脚本结束时自动撤销变量,将资源返回给系统。从这些方面来看,由于 PHP 在内部处理了编程的许多管理方面的问题,这就允许开发人员集中精力去完成最终的目标,也就是开发一个实用的应用程序。<br> ---- == 强大功能 == 在前面介绍 PHP 5 时就已经提到,这个新版本相对于以前的版本更重视质量,而非数量。以前的主要版本向 PHP 的默认库增加很多特性,每次发行新版本都会增加几百项新功能。目前,PHP 有 113个可用的库,总共有 1000 余项功能。也许,你知道 PHP 能访问数据库、处理表单信息以及动态创建页面,但你可能不知道 PHP 还有以下功能:<br> 创建并处理Macromedia Flash、图片和 PDF 文件。<br> 将密码与字典数据和容易破解的模式进行比较,评估密码的可猜测性。<br> 与轻量级目录访问协议(LDAP)通信。<br> 使用基于 POSIX 和 Perl 的正则表达式库解析最复杂的字符串。<br> 通过存储在纯文本文件、数据库或Microsoft 活动目录中的登录凭证来鉴别用户身份。<br> 与多种协议通信,包括 IMAP、POP3、NNTP 和 DNS 等。<br> 与大量信用卡处理解决方案通信。<br> 当然,后面的章节将尽可能地涵盖 PHP 的各项有趣而且有用的特性。<br> ---- == 可选择性 == PHP 开发人员很少只局限于一种实现方案。相反,这个语言为用户提供了充分的选择。例如,考虑一下 PHP 对数据库的支持。P HP 为不少于 25 种数据库产品提供了内置支持,包 括 Adabas D、d Base、Empress、F ilePro、F rontBase、H yperwave、IB M DB2、In formix、In gres、In terbase、m SQL、d irect MSSQL、MySQL、Oracle、Ovrimos、PostgreSQL、Solid、Sybase、UNIX dbm 和 Velocis。此外,也可以利用抽象层功能来访问 Berkeley DB 类型的数据库。最后,还有两个数据库抽象层可用,一个称为 dbx 模块, 另一个是通过 PEAR 的 PEAR DB。<br> PHP 强大的字符串解析功能也为用户提供了丰富的可选择性。除了超过 85 个字符串处理函数之外,PHP 还支持基于 POSIX 和 Perl 的正则表达式格式。这种灵活性使不同水平的用户都能获益,不仅能够(利用字符串处理函数)立即开始完成复杂的字符串操作,还可以(利用正则表达式)将有类似功能的程序(如 Perl 和 Python)快速移植到 PHP。<br> 你更喜欢函数式编程语言吗?还是采用面向对象范型(objectorientedparadigm)的语言?PHP 对二者都提供了全面的支持。虽 然 PHP 最初只是一种函数式语言,但 开发人员很快就意识到提供流行的OOP 范型的重要性,并开始实现一种可扩展的解决方案。这里反复强调的重点是,PHP 允许你充分利用目前掌握的技能,只需投入很少的时间就能很快地开始 PHP 开发。这种策略在整个语言中频频出现,这里提到的只是其中很少的一部分例子。<br> ---- == 成本 == PHP 从一开始就对使用、修改和再分发没有任何限制。最近几年,满足这种开放许可限制的软件称为开源软件(opensourcesoftware)。开源软件和因特网就像面包和黄油一样密不可分。开源项目如 Sendmail、Bind、Linux 和 Apache 都在因特网的发展方面起到了非常重要的作用。虽然媒体最为追捧的是开源软件可以自由使用,但它还有另外几个同样重要的特点(甚至更重要):<br> 没有大多数商业产品所要求的许可限制:商业软件往往有许多许可限制,而开源软件的用户没有这些限制。虽然在许可权限上存在差异,但一般来讲,用户都能自由地修改和重新分发开源软件,还能将开源软件整合到其他产品中。<br> 开放式开发和审计过程:虽然也曾有过一些意外事件,但开源软件在安全方面还是享有很好的声誉。这种高标准正是开放式开发和审计过程的结果。因为任何人都能自由使用源代码,所以安全漏洞和潜在的问题会很快被发现并得以修复。开源倡导者 Eric S. Raymond 很好地总结了这项优点,他说:“ 只要有足够的眼睛,所有的 bug 都无处遁形。”<br> 鼓励参与:开发团队不限于某个组织。任何感兴趣的人,只要具有相应的能力,都可以自由地加入到项目中。由于不对成员进行限制,这就大大增加了项目的人才储备,必然能贡献出更高质量的产品。<br> [[category:PHP教程]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:开发语言导航
(
编辑
)