传送门: 设为首页 收藏本站
首页IT计算机软件编程php开发为什么要学PHP以及PHP的前世今生
心向阳光
一线互联网企业工程师

文档

39

关注

4

好评

13
DOC

为什么要学PHP以及PHP的前世今生

阅读 225 下载 13 大小 94.5K 总页数 7 页 2021-07-12 分享
价格: 20 贡献
下载文档
/ 7
全屏查看
为什么要学PHP以及PHP的前世今生
还有 7 页未读 ,您可以 继续阅读 或 下载文档
1、本文档共计 7 页,下载后文档不带水印,支持完整阅读内容或进行编辑。
2、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。
PHP简介欢迎来到PHP世界,它是最受欢迎的Web编程语言之一。根据Netcraft(www.netcraft.com)的统计,截止2007年7月,全世界至少有2000万个服务器使在用PHP脚本语言(htp:/www.php.net/usage.php)。在编写本书的时候,根据TIOBE(http//www.tiobe.com/index.php/content/paperinfo/.pci)的统计,PHP的受欢迎程度在编程语言中排在第4位,仅次于Java、C和C+。自从引入PHP5.3版本之后,没有比现在学习PHP更好的时机了。本章将介绍以下内容:·首先概括介绍PHP语言,然后专门介绍PHP53版本中新增的功能。·PHP的定义、作用及它与其他动态Wb技术的比较。简单介绍PHP历史,这样读者就可以了解PHP在过去几年之中的演变过程,了解它如何从一种微不足道的技术蜕变成今天内容丰富的Wb开发构架。1.1PHP的含义PHP是一种用来创建动态的、交互的Wb站点的编程语言。一般来说,PHP程序都运行在Wb服务器上,它根据用户的请求向用户提供Web页面服务。PHP的一个重要特性是,我们可以把PHP代码嵌入到HTML页面中,因此用PHP语言可以很容易地建立动态页面。那么“动态的、交互的Wb站点”的精确含义是什么呢?动态Wb页面是指每次浏览页面时它的内容都会自动变化。与其相对的是静态Wb页面,如简单HTML文件,它每次显示的内容都一样(至少在下次修改之前还是一样)。另一方面,交互的Wb站点是指它会对用户的输入做出响应。一个最好的例子就是Wb论坛,用户可以在论坛上发布新消总,论坛上的其他用户都能看到这个消息。另一个简单的例子是“联系我们”表单,用户在表单中输入消息并发送表单,该表单最后会通过电子邮件发送给Wb站点管理员。提示:PHP是PHP:Hypertext Preprocessor的缩写,从这个定义,我们就可以知道它的主要作用:处理信息并生成超文本(HTML)作为结采。开发人员喜欢使用递归缩写,PHP:HypertextPreprocessor就是一个很好的例子,第I部分PHP的安装与运行PHP是服务器端的脚本语言。这意味着,PHP脚本或程序通常运行在Wb服务器上。(客户端脚本语言的一个典型示例是JavaScript,它通常在Wcb浏览器上运行)。而且PHP属于解释型语言,PHP脚本在运行时是由PHP引擎处理的。在Web服务器上运行PHP脚本的过程如下:·用户通过单击一个超链接或者在浏览器的地址栏中输入一个URL地址,向服务器请求一个Wb页面。用户也可以通过嵌入在页面中的表单或者通过AJAX(AJAX是Asynchronous JavaScript And XML的缩写符)把数据发送给Web服务器。·如果Wb服务器发现客户请求的URL是一个PHP脚本,就命令PHP引擎解释并执行这个PHP脚本。·这个脚本程序运行,当它运行结束时,它通常把一个HTML页面发送给Wb浏览器,而浏览器把页面显示在屏幕上,供用户浏览。在PHP脚本的运行过程中会发生许多有趣的事情。由于PHP语言非常灵活,因此一个PHP脚本可以执行很多重要的任务,例如:·读取和处理由用户发送的表单内容。·在Wb服务器上读取、写入或创建文件.处理存储在Web服务器数据库中的数据.·读取和处理来自其他Wb站点或信总源的数据。·生成动态图形,如图表和可被控制的图片。最后,当它处理完毕时,它会把定制的HTML Web页面发送给用户。在本书中,读者将学习如何编写脚本程序以实现上述功能,当然不限于此。所有这些功能说明一个道理,即可以用PHP建立任何我们能想象到的动态Wb应用程序。PHP脚本几个常见的例子包括:·在线论坛,允许用户在论坛里发贴和讨论问题。·搜索引擎,允许用户搜索Wb站点或数据库中的内容。·非正式民意调查脚本程序,它允许用户在民意测验和调查活动中投票。·内容管理系统和博客,它们允许Wb站点管理员用最少的技术知识方便快速地建立Web站点。·Web电子邮件应用程序,允许用户通过Wb浏览器发送和接收邮件。·在线购物,允许购物者在nternet上购买商品和服务。提示:Wb脚本鎬程当然是PHP成功的关键因素,但这不是该语言的唯一应用。命令行脚本编程一一它是在PHP4中引入的功能一一是PHP的另一个常见的应用(相关内容参见本书末尾的附录D),使用GTK(GNOME工具箱)开发客户端图形用户界面应用程序是PHP的另一个应用。1.2使用PHP的原因PHP最重要的一个优点是它得到了大量nternet服务提供商(Internet Service Provider,第1章PHP简介ISP)和提供托管服务的公司的支持。时至今日,有数百万开发人员正在使用PHP语言,据报道,目前有几百万个网站己安装了PHP语言,因此对于如此众多的开发人员在使用PHP也就不会感到惊奇了。PHP另一个重要特征是它的跨平台性一一PHP程序可以在Windows、Linux、FreeBSD、Mac OS X、Solaris等操作系统上运行。此外,PHP引擎可以集成到Apache、nternet信息服务器S、Zeus和lighttpd等常见的Web服务器中。这意味着,我们可以在一个平台中开发和测试自己的PHP Web站点,然后不需要修改或只需要很少修改就可以部署到另一个完全不同类型的平台上。如果有必要的话,我们甚至可以把自己的PHP Web站点移到另一个服务器平台上。PHP与其他常见的Web开发技术相比如何呢?在编写本书时,下面是当前流行的Web开发技术:·ASP(Active Server Page,动态服务器网页):它是微软于1997年提出的技术,也是最早与Wb服务器紧密结合的Web应用程序技术,因此它的执行速度很快。ASP脚本通常使用VBScript语言编写,VBScript是一个源自于BASIC的脚本语言.这正好与PHP相反,PHP更像C语言。虽然这两门语言都有广大的爱好者,但是我个人认为,使用PHP比VBScript能够更容易设计出结构化、模块化的程序。·ASP.NET:它是ASP的最新化身,但事实上,它是从头开始重新设计的。它实际上只是一个库架构,这个架构可用来创建Wb站点。在这个架构中可以选择C#、VB.NET(Visual Basic)和J#gava)等编程语言。由于ASP.NET为我们提供了一个大型的代码库,可用来建立HTML表单和访问数据库的数据表,因此可以快速开发并运行一个Wb应用程序.虽然PHP有很多标准函数库,但是它并没有像ASP.NET那样为我们提供一个结构化架构。不过,现在人们已经为PHP语言提供了大量免费的应用程序架构和库程序,如PEAR(在本书的后面章节中将要介绍)和Zend架构。许多人认为比起PHP,C#是一个结构性更好的编程语言,尽管在许多人看来它更难学。ASP.NET的另一个优点是C#属于编译语言,这意味着它比解释型的PHP脚本程序运行得更快(尽管PHP也有编译器)。提示:与PHP相比,ASP和ASP.NET还有其他几个缺点。第一,它们都有一个商业序列号,这意味着用户需要为服务器软件支付额外的贵用,因此这导致了托管费用猛涨。第二,A$P和ASP.NET与Windows平台之间关系紧密,而本列表中的其他技术的跨平台性更优秀。·Pe:Pe是创建动态网页的最早的编程语言之一,它最初是借助于CGI脚本的,后来它与Apache mod perl模块和ⅡS的ActivePerl等技术相结合,应用在了Web服务器中。虽然P是一个功能强大的脚本语言,但是它比PHP更难学习。比起PHP,它更是一个通用语言,尽管Perl的CPAN库包含了一些非常好的可以用来开发Web应用程序的模块。·Java:与Perl一样,Java是另一门通用编程语言,常用来开发Web应用程序。由于JSP(JavaServer Pages)和Servlets等技术的原因,Java是开发健壮的大型Web应用程序的首选平台。借助于Apache Tomcat等软件,用户很容易就能建立基于Java5第I部分PHP的安装与运行的Web站点,并且可以将其部署到几乎任何一个服务器平台上,如Vindows、Linux和FreeBSD。比起PHP,Java的一个主要缺点在于它的陡峭的学习曲线,即使一个非常简单的Wb站点(在这方面,PHP帮了大忙),我们也需要编写一段较长的代码。Java的另一个缺点是很难找到一个托管公司支持SP,而几乎所有的托管公司都提供PHP托管业务。Python:Python最早构思于20世纪80年代后期,是另一门通用编程语言,它现在广泛应用于建立动态Web站点.虽然该语言本身并不具有很多Web特有的功能,但是由于Zope和Django等有用的模块和架构的存在,因此用它构造Web应用程序变得相对容易。许多流行网站如Google和YouTube等都是用Python语言开发的。而且Python网站托管服务也变得日益常见(但还是根本无法与PHP托管服务相比).利用Google应用程序引擎(Google App Engine)我们甚至可以在Google的服务器上建立或托管自己的Python应用程序。总之,Python是一门非常好的语言,但是目前,PHP远比它流行,而且PHP有很多内置功能,可以更好地帮助开发人员建立Web站点。Ruby:与Python一样,Ruby也是一门通用编程语言,在最近几年里,它已经引起很多Web开发人员的注意。这主要归功于Ruby On Rails应用程序架构。这个架构使用了模型-视图-控制器模式Model--View-Controller,MVC)和Ruby全面的面向对象特性,因此用它可以快速创建一个完整的Wb应用程序。与Python一样,Ruby正越来越受到Wb开发人员的青睐,但是到目前为止,还是PHP更受大家欢迎。ColdFusion:除了ASP外,Adobe公司的ColdFusion也是最早的Web应用程序架构之一。它最早发布于1995年。ColdFusion的主要卖点是它的易学性,用户使用它可以快速建立Wb应用程序,而且使用它建立数据库驱动的网站非常容易。其他的优点是,它与Flex紧密相结合,Flex是Adobe公司的另一项技术,利用它可以建立复杂的基于Flash的Web应用程序。ColdFusion的一个主要缺点在于它目前还不像PHP那样受欢迎(因此它很难找到托管公司,而且开发人员的数量也很少),也不像PHP那样灵活,而且运行Wb应用程序的服务器软件也相当昂贵(PHP和Apache都是开源程序,而且是免费的).总之,PHP在编程语言中处于中间位置。在一方面,它不像Python和Ruby那样属于通用语言(尽管可以将它当作通用语言使用),这使得PHP非常适合于它的主要任务:建立Web站点。在另一方面,PHP不像ASP.NET或Ruby On Rails那样有一个完整的Web程序架构,这就意味着需要重头开始建立Wb站点(或者使用附加的扩展模块、库或架构)。然而,处于这个中间地位正好从某种程度上解释了PHP受欢迎的原因。由于建立一个基本的Wb站点不需要学习大型架构或导入大量的库,因此PHP语言非常容易学习和使用。而另一方面,如果我们确实需要库或架构所提供的额外功能,PP语言同样也提供了这方面的功能。PHP受欢迎的另一个原因是,它拥有完善的系统的在线文档。可以在www.php.net和它的几个镜像网站上获得这些文档。在过去几年里,PHP的某些处理方式曾受到人们的批评。例如,它的主要不足之处是它对对象的支持方式。但是,自从53版后,PHP己完全考虑到这些问题,根据实际需要,6第1章PHP简介它完全改变了其功能的实现过程。现在,PHP己经成为开发大型企业和中小型企业应用程序的主要竞争者。1.3PHP的演变过程虽然直到1998年,PHP才开始受到Wb开发人员的欢迎,但是它早在1994年就已经由Rasmus Lerdorf创立。PHP最初只是一个用C语言开发的工具组件,用来取代Rasmus在设计自己的个人主页时使用的P脚本程序(这正是PHP一词的来源,个人主页,英文即为Personal Home Page)。他在1995年向公众发布了PHP,并称之为PHP2.1997年,Zeev Suraski和Andi Gutmans两位程序员与Rasmus一起重写了PHP的大部分代码,并于1998年6月发布了HP3。到那一年年底,PHP己吸引了数以万计的开发人员,并且已用在了数以万计的Web站点上。接着,Zeev和Andi准备推出PHP的下一个版本,准备再次改写其中的核心代码,并且称它为“Zcnd引擎”(亿end Engine)(这个名字来源于他们两个人的名字,Zeev和Andi.于是在2000年5月推出了新的版本,即PHP4。这个版本对PHP3做了进一步的改进,并且增加了会话处理功能、输出缓存和一个更加丰富的核语言,并且支持更多类型的Wb服务器平台。虽然PHP4对PHP3做了显著改进,但是它仍然存在一个严重的缺陷,即相对而言,它的面向对象编程(Object-Oriented Programming,OOP)特性还不完善。2004年7月发布的PHP5解决了这个问题,它在类中增加了私有和保护类成员:增加了inal、私有、保护和静态方法:增加了抽象类:增加了接口:增加了标准化的构造函数/析构函数语法。1.4PHP5.3新增的内容相对而言,53版本新增的内容都是一些小修改,或者是初学者范围之外的一些高级主题。在下面的小节中,我们将向读者介绍,特别是向使用过PHP5.2或以前版本的读者介绍53版本中的几个重要的变化。1.4.1名称空间PHP53的一个重要新增功能是对名称空间的支持。这个功能非常有用,我们可以用它避免来自一个应用程序的不同部分或应用程序各个库之间的命名冲突。名称空间与硬盘上的文件夹有类似之处。利用名称空间,我们可以使一组函数、类和常量名独立于另一组函数、类和常量名。同一个名字可以出现在多个名称空间中,而不会引起冲突。PHP53的名称空间功能相当全面,它包括了对子名称空间的支持,同时还包括了对名称空间别名的支持。第20章将详细介绍名称空间的用法。
文档评分
    请如实的对该文档进行评分
  • 0
发表评论
返回顶部