PHP浅析
PHP是1994年诞生的,后面加入FSF之后得到飞速的发展,97年推出的PHP3.0版本成为一个比较普及的版本,2000年的PHP5.0加入OO和XML之后得到更好的应用。 PHP+MySQL做动态网站可以很好的提高网站开发速度和网页性能。能让更多的人在比较短的时间之内掌握专门语言进行快速开发,PHP是建立在Perl语言之上的,兼有java,C,C#,.NET的优点,并且语言简单,稍微有点C基础的程序员就能进行动态网页的开发。 Google数据统计表明:现在全球大概有2000万的网站是用PHP来开发的,PHP在网站设计上占有绝大的优势。 以下就简单的介绍一下这个具有专一性的网络服务器端脚本语言。 论 Web 2.0 时代的 PHP 2006.10.23 来自: phpchina 钱宏武 随着所谓WEB2.0时代来临,程序员从来没有时代象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈, JAVA、C++、 PHP、ASP等等,最近又出来一个Ruby,加上Python。无数的FANS在中间进行争论不休,也就是在网路上,如果是在现实 生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。而现在定出谁是天下第一大其实很方便,看一下哪个语言旗下的弟子人数即可。而现在最流行的统计方式,就是Google了,看看Google的搜索结果,基本就能判断出其在市面上的网站的使用情况, 约有5,760,000,000项符合 php 的查询结果 约有3,070,000,000项符合asp的查询结果 约有976,000,000项符合java的查询结果 约有327,000,000项符合perl的查询结果 约有238,000,000项符合python的查询结果 约有225,000,000项符合c++的查询结果 约有176,000,000项符合ruby的查询结果? 这段时间葛优的光脑袋频繁曝光,总是喋喋不休的告诉俺们一个道理——用的人多的卡就是好卡。而如果套用这个光头明星的话,那就是,我,相信群众,从上面查询的结果大家可以看到,人民群众是很爱戴PHP的。 但如果你去问 互联网的一些资深开发人员,PHP、ASP与Java,他们之间谁更好?一般来说,这个人都会告诉你,ASP就不用想啦, 微软出的垃圾,PHP和Java是不错的选择,Java适合做大项目,PHP适合做一些短平快的东西。如果你还继续问,这个高手还没有失去耐心的情况下,他大体都会说,你看世界上最大的互动平台eBAY,就是用JAVA写的,中国最大的社区CHINAREN校友录也是JAVA,而很多小的网站,初期都是PHP,后来各种原因都必须改到JAVA上面去。这种感觉就是像说,如果你想学武功以便出去砍人,或者说在江湖扬名立万,那么行军拳你就不用练啦,这个东西是政府拿出来强身键体的,五虎断门刀这个东西你用来对付一般的流氓是绰绰有余,但是碰到绝顶高手你就歇了。而Java有点象太极拳,当今武林最大的门派之一SUN的首推武功,是对负高手的不二选择,于是很多人就认定:PHP是低等武功,练到最好的结果也就是给赌场看看场子,只有练就Java才能做武林盟主。 俺和很多公司的 技术经理聊的时候,经理们说很多人都有这种心理,他是使用Java的,而你如果让他写PHP,,很多人会有一种受到侮辱的感觉,不是觉得经理不重视他,就是在想自己什么时候得罪了经理,竟然被发配到PHP这种偏远的小地方去了。越是大公司,PHP的项目越难开展起来,这个让很多技术老大们很是郁闷,但也很是奇怪。所以,下面,咱们一起分析一下形成这种被人民群众认可,却不被很多开发人员看好的语言——PHP。 PHP 进入中国是98,99年,进入的时候,初期应用的典型是Chinaren校友录,还有很多的互动应用,它以开发方便,容错性好,迅速成为很多网站的选择。到了00,01年,互联网泡沫的时候,很多都是PHP完成对网站的开发,它的流行有以下几个原因: 兼容C的语法,容易掌握? 就这一点来说,它保证了开发人员的稳定来源,基本上说,每个学计算机的人员,没有不学习C 语言的,所以都能在一到两周左右快掌握这个新的语言,然后经过简单的指导,就能开始初期的开发 工作。单从程序本身的开发而言,写了三年以上的程序员,和开发了半年以上的PHP程序员差别不是太大。 运行的快速 在网路上面,速度是很重要的问题,这一点来说及时是对PHP非常不屑的人也不得不承认PHP得运行速度还是比较令人满意的,只不过由于没有很实际的数据,只是很多人感觉,所以这一点来说,没有非常有力的证据证明。 非常强的容错,很好的鲁棒性能 很多写PHP的人员应该有这个感觉,举个例子,你申请一个PHP中的变量,做数字也行,做数组也行,做字符串也可以。我有时候都在想,这么随意的风格,他是如何保证效率的,只能说写这个语言编译器的人实在太不可思议了。 丰富的函数和简单的操作 能想到的一些操作,如果不是太罕见,你基本都能找到函数库来解决,典型的就是读文件的内容读到一个变量,到现在为止,我知道的好像只有PHP提供一个专门的函数来解决这个问题 以上四个特点,用PHP开发程序非常得普遍,但作为程序来说,这些看起来非常不错的特征也形成PHP的一些问题,造成在很多资深的程序员对其评价很低。 首先第一条,也是让很多资深的程序员对其尴尬不已的,做了3年以上的PHP程序员,当一个初学者问其一些技巧的时候,他们突然发现,PHP这种语言实在是没有好说的,看它的帮助就能解决问题或者看一下 教程。不像Java,一个仅仅写了半年左右的Java开发人员和3 年以上的Java开发人员可以说有本质的区别,后者可以讲很多JAVA的开发架构和分布问题,讲的那个菜鸟满脑浆糊,满脸崇拜。而俺在PHPCHINA.CN讲课的时候,发现每个人在听PHP语言一些很细节的东西时都是昏昏欲睡,大部分都在开小差。我想这和PHP语言通俗易懂,没有什么挑战性的概念有很大的关系。 第二条还是效率的问题。市面上对于WEB语言的效率,PHP快只是感觉,并没有一个非常有力的 测试证明它比别的语言快很多,而JAVA和ASP却有一个非常有名的一个测试性能比较。 有人做过试验,对这三种语言分别做循环性能测试及存取Oracle数据库测试。 在循环性能测试, JSP用了20000*20000的循环? 共四秒钟。 而ASP、PHP测试的是2000*2000循环(少一个数量级),分别用了63秒。 PHP测试的是2000*2000循环 84秒 数据库测试中 三者分别对Oracle8进行1000次Insert,Update,Select和Delete: JSP需要13秒 PHP需要69秒 ASP则需要73秒 一个有意思的测试,说明一个问题,对于大量的运算,PHP看起来不是一个太成功的语言,这个也是很多高手不是很看好PHP的一个实际例证明,然而实际是这个仅仅是一个有点BT的测试,谁会在互联网上写一个循环400万次循环以上的一次请求应用,我倒很想见识一下。实际上,在WEB应用中这种循环或者说密集的运算非常罕见,如果有,首先该考虑的也是算法的优化,减少循环的次数,然后才是考虑语言本身。并且就算是必要的,也不是Java、PHP和ASP能够解决的,这个时候,如果用的比较多,C会粉墨登场,再多一点,可以使用汇编,非常多的情况下,芯片的设计我想是比较好的选择,怎么样都不会轮到Java这种语言,所以用这种方法来评价PHP是非常不妥的。 而对于PHP开发中较好的鲁棒性,你怎么写它都能运行,并且很稳定,从而也造成PHP程序员的散漫,程序的开发非常随意,又加上中国互联网产品开发的紧急性,几乎都没有很好的文档,从而后期PHP程序的维护成为无数项目经理的噩梦。这一点也是很多高手或者说资深程序员对于PHP评价很低的地方,而当很多项目经理需要要规范开发的时候,却又发现无从规范起,Java有Struts、MVC……而PHP却缺乏成体系的开发架构,从而也成为PHP很难成为企业应用系统的选择。 至于丰富的函数操作,这个大概是唯一没有被人诟病的地方,但是 Java、ASP以及Perl都有很丰富的函数,PHP在这一点没有非常大的优势,所以只是成为人们选择它的一个不是很重要的理由。 专家预言: PHP 将比 Java 更好更受欢迎 2006.01.20 来自:赛迪 Netscape 共同创办人 Marc Andreessen 在 Zend/PHP 会议上预言,简单的 PHP 描述性语言撰写工具,在 Web-based 应用程序的开发上,将会比 Java 更受欢迎。 在 Sun 于 1995 年发表 Java 之后,由于 Java 的友善接口让工程师设计软件更为容易,受到工程师欢迎,但十年下来 Java 陆陆续续被加入了强大的功能,反而使它变得不容易操作。 Marc Andreessen 指出,现在的 Java 可能比 C++ 更难学,在此同时, PHP 传承了 Java 的简单精神,并创造一个比 Java 更容易使用的程序开发环境。 PHP 为一开放源码项目,其中包括可以简化程序的描述性语言引擎以及一个大的链接库,也有专门开发 PHP 的公司,如 Zend 就有销售 PHP 套装产品、程序撰写工具及技术支持服务。 Andreessen 的看法可能很难博得 Java 拥护者的认同,因为现阶段全球仍有数百万专研 Java 的工程师,也有数百家公司参与 Java Community Process ( JCP ),在 JCP 中共同主掌 Java 的命运。但是,就算是大力扶植 Java 、甚至以 Java 为 WebSphere 服务器软件核心的 IBM ,也认为 PHP 的前途会比 Java 来得好。 IBM 新网络科技事业处副总裁 Rod Smith 就说,「简单」是 PHP 最大的特色,而且它不会为了与其它语言竞争而加入新的语言功能, Java 显然就不是这么做。 而且, PHP 的势力也不小,目前约有 2200 万的网站采用 PHP ,包括 Yahoo! 、 Lufthansa 等知名网站,数量并持续增加中,并有 450 个软件工程师有权去审核在 PHP 软件上的任何变动。 与 Java 相较, PHP 可用范畴限制较多,它仅能用在网络服务器上,不像 Java ,同时可用在网络服务器、个人计算机、手机、芯片卡或其它装置。 Java 和 PHP 除了在某些方面相互竞争之外,某个程度来看,也在彼此靠陇。甲骨文产品策略副总 Ken Jacobs 表示,即使甲骨文( Oracle )销售同时可执行 Java 及 PHP 的 Java 服务器与数据库软件,但正为 Java 加上一项额外的新功能,让这两个软件项目可以协同运作;更具体的说, Java 规格需求 223 ( JSR 223 )将会 “ 协助建构在 Java 社群与 PHP 社群之间的那座桥梁 ” 。 日前才发表可以分享照片等内容网站 “Ning” 的 Marc Andreessen 也说,现在 Ning 也同时执行 Java 与 PHP ,其中核心系统是由 Java 组成,比起该站所有可看见的应用程序都是由 PHP 写成, Java 更像是操作系统层级。 就像其它诸如 Linux 及 Apache 的开放源码项目, PHP 目前也受到计算机工业主要大厂的庇佑,像 IBM 跟 Oracle 都致力开发让 PHP 软件可以撷取旗下数据库的程序。事实上, IBM 与 Oracle 的行为就像在为 PHP 背书,连这两大厂都支持 PHP ,证明 PHP 也许就是个好东西。 互联网周刊: “ 草根语言 ”PHP 挑战 “ 大腕 ”Java .Net 2006.11.21 来自:互联网周刊 Zeev这位30岁的以色列小伙子看起来一点也不像有权势的人物,可是他共同创始的PHP语言,却成为网络时代异军突起的一个传奇。最新的消息是,Sun公司已决定把免费公开Java源代码提上日程,而微软的脚本语言ASP.net也只得一直实行免费赠送。这个小个子PHP及其同伙Linux、Apache、MySQL掀起的开放源代码浪潮影响了整个Web世界,给程序编写及发布方式带来了革命性的变化。重要的是,PHP两不耽误,一边保持着开源的真谛,另一边则取得了商业上的成功。 就在最近,PHP商业化公司Zend又获得了2000万美元的投资,投资人包括Intel Capital和SAP Ventures。IBM也将与Zend合作,把PHP引入到IBM的中级服务器平台,以支持访问DB2数据库,这笔交易价值数百万美元。而Zend的下一步很有可能是进行首次公开募股(IPO)。 在今天,全球已有2000万个网站使用PHP,包括最流行的雅虎、Google、百度、YouTube、Digg,也包括像汉莎航空电子订票系统、德意志银行的网上银行、华尔街在线的金融信息发布系统,甚至军队系统这类五花八门和苛刻的环境。PHP究竟是怎样炼成的? 源于草根 作为目前全球最流行的网站应用软件编程语言,PHP的成长历程和Linux有异曲同工之妙。1994年,它由Rasmus Lerdorf最早创建,Lerdorf只是想记录自己的在线简历,后来许多人都向他要程序的拷贝。1995年6月,Lerdorf在加入了一些介绍文档之后,在Usenet新闻组发布出去,这就成了最早的PHP 1.0。 这期间,两位大学生Zeev Suraski和Andi Gutmans需要能做一个基于Web的软件项目,需要能很好地支持Linux,但当时的ASP并不完善,JSP又比较复杂,所以就选择了PHP。其后他们在工作中发现PHP还有些不足,便自愿加入PHP语言开发工作组,并重新编写了底层的解析引擎。1998年6月,有着历史意义的PHP 3.0发布,用户数开始飞涨。1999年,他们两人又创建了Zend公司,开发了Zend Engine,大大提高了PHP的性能。 雅虎是PHP语言最早的使用者之一,随着雅虎的兴起,大量的站点开始学习雅虎背后的语言—PHP。此时,软件开始从传统模式向基于Web模式转变,几大势力一一长成:Linux操作系统、Apache网络服务器、MySQL服务器,以及以PHP语言为代表的“P”族语言(PHP、Perl、Python),一本德国计算机杂志把它们共同称为LAMP(明灯),也由此与J2EE架构(以Java为编程语言,Sun公司主导)、.Net架构(微软公司主导)形成了三足鼎立之势。在Evans Data公司的一份统计资料中,PHP使用者比Java及.Net的使用者稍有差距,但预计2007年的增长率将达37%,超过Java的16%和.Net的27%,这场草原上燃烧的星火正越来越旺。 从革命者到务实者 PHP成功的两大秘诀,第一条就是简单。PHP简单到让喜欢卖弄技巧的程序员感到羞愧,但让那些渴望进入Web开发领域的初学者欣喜若狂。PHP像是一条鲶鱼,与XML、Web Services融合无间。即使历次的版本升级,也无需担心PHP会丧失这种简单的特性。无疑,这个特点给需要快速开发、交互应用的Web2.0潮流极大的带来了方便,有超过半数的Ajax-enabled和Web2.0站点都选择了PHP。 PHP的第二个秘诀,就是“Community(强大的社区)”。Discuz!软件的开发者,25岁的康盛创想公司CEO戴志康就是这个特性的受益者。他说,不像其他的开发者需要从零开始,大量的PHP程序都有开放源代码可供学习,后人站在前人的肩膀上加以改进,又将这种知识积累的结果回馈给社区。这曾被比喻为“大教堂和集市”,在集市中,知识得到了最大化的利用,效率提高、错误减少、成本降低。而大教堂只能越垒越高,不断延迟发布时间。 现在,全球已有450万名PHP开发工程师,被称为“PHPer”,他们成为了软件世界中最有影响力的社区之一。有趣的是,开源的浪潮经过数年的发展,早已经走向庙堂,无论是Intel、IBM、Oracle,甚至是微软,都成为鼓吹甚至主导开源的力量。11月初,微软与Zend公司达成了一项长期合作的伙伴关系,共同推动PHP语言的发展。 与其说开源运动是个颠覆者,不如说更像是粘合剂。中国开源软件推进联盟主席陆首群说,LAMP也可以派生出WAMP(W代表Windows)。事实上,PHP与.Net是并存的,PHP也可以和Windows捆绑在一起,两者并没有冲突,可以因地致宜地使用开源与闭源混合架构(Mix)。 目前PHP社群和Zend公司的目标,是将PHP推广到企业级应用。在这一点上,欧洲和北美远远领先于中国。Zend(中国)技术支持中心总监耿志军说,PHP已经在金融、政府、交通、电信、媒介、娱乐等各大行业被广泛使用,完全脱离了一个简单网络语言开发工具的境界。而在中国, PHP只应用于门户网站和部分的专业网站,严谨的政府和金融网站难以看到它的身影。 即便如此,PHP正在崛起,这一点毫无疑问。正如Red Hat推动了Linux的发展,Zend也正努力将PHP带入黄金时代。Zend于2005年在慕尼黑新开设了一家子公司;今年在法国也将设立一个子公司;在中国,Zend公司与康盛创想公司建立了合作关系,并成立了Zend(中国)技术支持中心。有很多像耿志军这样的年轻人正加入到这个队伍中,这些围绕着PHP的力量和这个语言本身一样充满了朝气。 注:PHP是一种开放源代码的脚本编程语言,主要用于WEB服务器端应用程序,用于动态网页设计。PHP可以用于替代微软的ASP/VBScript/JScript体系、Sun公司的JSP/Java体系,以及CGI/Perl等。 访 PHP 核心缔造者 Zend 创始人 & CTO Zeev Suraski 2006.10.31 来自: CNET 随着互联网开源潮流的迅速发展,全球IT业正迎来一个新的发展成长期。PHP作为最成熟的开源体系—LAMP(Linux、Apache、MYSQL、PHP)的重要一员,以其简单性、开放性、低成本、安全性和适用性,正受到越来越多的WEB程序员的欢迎和喜爱。日前,Zend公司CTO,PHP的构建者之一Zeev Suraski先生访华,接受记者采访,就PHP新产品、Zend公司的发展与未来发表了自己的看法。 记者:在中国,用户对PHP比较了解,但对Zend就不太清楚了,能否现简单介绍一下Zend公司,Zend的核心产品以及未来将对PHP做出那些新的贡献? Zeev Surask:Zend公司是一家致力于PHP的发展和推广的公司,也是全球唯一能够称为PHP的公司,因为PHP的三个创建者有2个(Andi和我)创建了这家公司,而且我们一直在推广着PHP,包括修正PHP,为PHP加入新的功能等等。 另外,我们一直在推动PHP走向企业级的应用,比如我们下周马上要召开的Zend Conference 2006就是为了让PHP走向企业应用。 Zend为PHP提供解决方案,但是并不是说PHP是Zend的,PHP属于PHP社区,全球有超过500万个人在开发PHP,Zend公司只是PHP的推动者。 记者:PHP是否就只定位在web方面?PHP的定位是什么?PHP是否考虑能够做更大型的企业级应用? Zeev Surask:“简单”是PHP语言的最大特性之一,新产品会一直保持简单这个特性的。PHP6也将延续简单这个特性,并且加入了Zend与YAHOO一起开发的Unicode模块。 我们正在开发一个标准的开发框架Zend Framework,希望更多PHP使用者能通过它快速构建Web应用。还有,我们将与IBM合作推出集成Zend IDE开发特性的Elicpse供大家使用。 PHP可以应用在基于Web的产品中,比如CRM、OA等,如SugarCRM等。此外PHP还可以使用在许多的传统领域,例如在国外,PHP在汽车、游戏、银行等行业都有很大应用。根据企业的具体使用需求来说Zend Platform的功能比较多,主要是帮助企业提高PHP性能、提高稳定性和降低开发成本等。 记者:年底即将推出的PHP6将有哪些显著的改进和重大突破? Zeev Surask:PHP6集成了Unicode等诸多特性, 其它的特性还在开发中,比如web service。Web service在PHP5.X就会开始用。 PHP6同时去掉了一些以前不太好的特性。但是无论怎样,PHP两大特性是不会丢失的:第一,使用简单,稳定;第二,不会对PHP增加性能消耗。另外,我们也希望PHP6加入Unicode以后,能在中国这样一个使用汉字的国家更迅速地推广开来。 记者:您对中国的PHPer的水平评价如何?您认为中国的PHPer应该如何进一步提高自己? Zeev Surask:中国有很多的PHP开发人员,而且对PHP都是比较精通的。我要强调的一点是,正是中国的PHP开发工程师的贡献,PHP的发展才有今天。 PHP入门很简单,但是PHP会不断有新的功能出现,所以希望中国的PHPer能够不断学习。PHPer要多从许多PHP书籍、PHP技术网站获取最新的信息和技术。对于企业来说在使用之前请仔细了解PHP,然后再开始使用PHP进行开发。如果一个PHPer创建一个PHP程序,而没有其它商业发展目的的话,就把它公开,这样能够让更多的人参与进来,一方面可以提高你自己,另外也可以很快地提高你的PHP程序。 记者:对于一个100万用户以上的网站,使用什么样的PHP版本、Apache版本和MySQL合适呢? Zeev Suraski:如果对刚开始使用PHP的个人或者公司来说,我们推荐大家使用最新的版本,如果大家已经使用PHP很长时间的话,也没必要不停地升级。 记者:PHP与MYSQL及APACHE的配合关系会一直发展下去吗? Zeev Suraski:是的!MySQL是非常优秀的数据库,Apache更是目前最为流行的Web Server。而且我们之间的合作一直非常顺利,我们今后将会加强与MySQL以及Apache的合作。 记者:无论Java还是.Net,在中国都有很强的市场,PHP似乎还是相对比较的弱,Zend如果改变这种状态呢?如何推进中国PHP的发展呢? Zeev Suraski:微软等公司也充分意识到开源的重要性,并推动其.Net长期发展,所以PHP与.Net是并存的,并且PHP也可以和windows捆绑在一起。我想微软要推广的是windows平台,和PHP应该没有太大的冲突。 经过调查,PHP和Java、.Net名列前三名主流应用平台,我们预计在2007年的增长率PHP要超过Java和.Net。 记者:请问您对PHP的未来是如何看待的?PHP是否会成为Java那样复杂的开发语言?会一直坚持Web语言这个特点吗? Zeev Suraski:是的,PHP最终就是为了Web开发而出现的,而且我们一直在秉承这个理念,将来也是这样的!我们希望PHP能够成为Web开发最好的开发语言。PHP能够成功是因为两点:第一是它简单;第二是获得了许许多多的PHP爱好者支持。 所以,从第一点出发,我们也会一直让PHP保持简单这个特性。因此,我们在PHP的后续版本中如果需要加一个新的特性,如果新的特性严重影响了PHP的性能,我们肯定不会采用的。曾经也有人跟我们抱怨PHP5变得复杂了,也有人说PHP5的功能还不够强大。因此,无论如何,我们会让PHP保持简单易用,高性能等特点,这是毋庸置疑的。 记者:在1997年前后,Web开发语言例如ASP与JSP等已经比较流行。请您谈谈当年为什么开发PHP语言? Zeev Suraski:当时我和Andi(PHP语言另一个创始人)都还是大学生,我们需要做一个基于Web的软件项目,而且能够良好地支持Linux,但是当时ASP并不是非常的完善,JSP又比较复杂,所以我们就选择了PHP。接着,我们在工作当中发现PHP还有些不足,因此我们便加入了PHP的扩充与发展,并且后来开发了Zend Engine。加入了Zend Engine以后PHP的性能得到非常大的补充,而且开始有很多人开始使用PHP,我们非常高兴。 Zend创始人& CTO Zeev Suraski简介 Zeev毕业于Technion--Israel Institute of Technology,是PHP语言的核心缔造者,他和其他PHP贡献者以早期的PHP代码为蓝本,编写出了官方发布的PHP3.0版本。随着PHP3的出现,PHP技术得到了迅速的发展。其强大的可延长性的特点也吸引了大量的开发工程师。随后,Zeev带领Zend成功开发了Zend Engine I并推出了PHP4.0,并相应开发出了PHP4.0的许多组件。 PHP4.0 因为Zend Engine得到了革命性地发展并极大地增强了性能和可靠性。 今天,全世界有超过2000万的网站在使用着PHP,PHP语言也因此被NetCraft称为互联网最流行的开发语言。随着PHP发展,他带领Zend公司又成功开发了Zend Engine II,实现了PHP5.0版本的发布和普及。 正因为Zeev一直以来对Zend公司和PHP的杰出贡献,Zend公司一直具备PHP技术的设想和创新能力,并因此保持PHP独一无二的技术领先地位。 Zeev Suraski还是一位素食主义者。