php诞生于哪年
发布时间:2025-05-22 15:57:06 发布人:远客网络
一、php诞生于哪年
php是什么?
PHP(PHP:HypertextPrerocessor)是一种在电脑上执行的脚本语言,主要是用途在于处理动态网页,也包含了命令行执行接口(commandlineinterface),或者产生图形使用者接口(GUI)程序。[1]
PHP(PHP:HypertextPrerocessor)是一种在电脑上执行的脚本语言,主要是用途在于处理动态网页,也包含了命令行执行接口(commandlineinterface),或者产生图形使用者接口(GUI)程序。[1]
PHP最早由RasmusLerdorf在1995年发明,现在PHP实质上的标准由PHPGroup和开放源代码社群维护。PHP以PHPLicense作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不相容。[2]
PHP目前被广泛的应用,特别是在服务器端的网页程序开发。一般来说PHP大多执行在网页服务器上,透过执行PHP程序码来产生使用者浏览的网页。PHP几乎可以在任何的操作系统上执行,而且使用PHP完全是免费的。根据2007年4月的统计资料,PHP已经被安装在超过2000万个网站和100万台服务器上[3]。
ZendTechnologies的创办人之一-AndiGutmansFile:ZeevSuraski.jpg
ZendTechnologies的创办人之一-ZeevSuraskiPHP原本的简称为PersonalHomePage[4],是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。最初这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量[5]。他将这些程序和一些表单直译器整合起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程序。RasmusLerdorf在1995年6月8日将PHP/FI公开释出,希望可以透过社群来加速程序开发与寻找错误[6]。这个释出的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。[5]
在1997年,任职于TechnionIIT公司的两个以色列程序设计师:ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:HypertextPreprocessor.[5]。经过几个月测试,开发团队在1997年11月释出了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式释出PHP3。ZeevSuraski和AndiGutmans在PHP3释出后开始改写PHP的核心,这个在1999年释出的剖析器称为ZendEngine[7],他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。[5]
在2000年5月22日,以ZendEngine1.0为基础的PHP4正式释出,2004年7月13日则释出了PHP5,PHP5则使用了第二代的ZendEngine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强[8]。目前PHP4已经不会继续更新,以鼓励用户转移到PHP5。[9][10]
2008年PHP5成为了PHP唯一的有在开发的PHP版本。将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化[11][12]。PHP6的开发也正在进行中,主要的改进有移除register_globals[13]、magicquotes和Safemode的功能。[9][14]
1.01.0.01995年6月8日正式名称为"PersonalHomePageTools(PHPTools)",第一次使用了"PHP"的名字。[5]
2.02.0.01994年4月16日针对PHP1.0的改进版,速度更快、体积更小,更容易产生动态网页。[5]
3.03.0.01998年6月6日开发方式改成多人共同参与。ZeevSuraski和AndiGutmans为了这个版本重写了剖析引擎。[5]
4.04.0.02000年5月22日改成以Zend引擎作为剖析器,具有两阶段剖析/标签剖析系统等先进功能。[15]
4.1.02001年12月10日加入"超全域变量"(superglobals)功能,包含了$_GET、$_POST、$_SESSION等[15]
4.2.02002年4月22日默认取消register_globals功能。从网络接收的资料将不会设定成全域变量,增加程序安全性[15]。
4.3.02002年12月27日加入命令行执行档,称为CLI。[15]
4.4.02005年7月11日Addedmanpagesforphpizeandphp-configscripts.[15]
4.4.82008年1月3日Severalsecurityenhancementsandbugfixes.WastobetheendoflifereleaseforPHP4.Securityupdatesonlyuntil2008-08-08,ifnecessary.[16]
4.4.92008年8月7日Moresecurityenhancementsandbugfixes.ThelastreleaseofthePHP4.4series.[17][18]
5.05.0.02004年7月13日ZendEngineIIwithanewobjectmodel.[19]
5.1.02005年11月24日Performanceimprovementswithintroductionofcompilervariablesinre-engineeredPHPEngine.[19]
5.2.02006年11月2日Enabledthefilterextensionbydefault.[19]
5.2.82008年12月8日[20]emergentbugfix[20]
5.2.92009年2月26日[21]这个版本解决了5.2.*的超过了50多个错误和多个安全问题,增加了稳定性。[21]
5.2.9-2(Windows)2009年3月10日[22]这个版本解决了在Windows系统下OpenSSL的安全缺陷,与其绑定的OpenSSL版本升级到0.9.8k。[22]
5.3.0预计2009年第二季[23]支持命名空间;使用XMLReader和XMLWriter增强XML支持;支持SOAP,[24]延迟静态绑定,跳转标签(有限的goto),闭包,NativePHParchives
6.06.0.0???支持Unicode;移除ereg扩展,'register_globals','magic_quotes'和'safe_mode';AlternativePHPCache;Removalofmime_magicandrewriteoffileinfo()forbetterMIMEsupport[25]
PHP是一个应用范围很广的语言,特别是在网络程序开发方面。一般来说PHP大多在服务器端执行,透过执行PHP的程序码来产生网页提供浏览器读取,此外也可以用来开发命令行脚本程序和使用者端的GUI应用程序。PHP可以在许多的不同种的服务器、操作系统、平台上执行,也可以和许多数据库系统结合。使用PHP不需要任何费用,官方组织PHPGroup提供了完整的程序源代码,允许使用者修改、编译、扩充来使用。[26]
PHP的语法参考了Perl、C语言,而且可以整合在HTML之中,以下是一个简单的HelloWorld程序:
PHP剖析引擎只剖析?php到?之间的程序码,而不包含在?php到?之间的内容则会直接送出,所以可以用以下的方式来将PHP程序码嵌入在HTML之中:
但是在判断语句中的HTML代码并不会被直接送出:
PHP可以用三种注解的形式:C与C++所使用的“/*...*/”与“//”,和Perl的“#”。
PHP中,变量以“$”后接变量名称来表示。变量名称区分大小写。有效的变量名称以字母或底线开头,后接任意数目的字母、数字或底线。[28]
PHP从PHP3开始有了基本的面向对象的特性,但直到PHP5将面向对象部份重新改写之后,PHP的面向对象功能才比较完善。现在PHP可以说是一个有完整面向对象功能的语言。
内建多样化的函数是PHP主要的特点之一,这些开放程序码的函数提供了各种不同的功能,例如档案处理、FTP、字串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。
除了内建的函数之外,PHP也提供了很多延伸函数库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸函数库需要从PECL(PHPExtensionCommunityLibrary)取得。
PHP源代码是可以直接读取的,即使放到服务器上执行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。
透过PHP编码器,可以保护PHP的源代码不被读取(对商业软件来说特别有需求),也可以提升执行的效能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码(bytecode),再透过服务器上安装对应的程序来执行PHP脚本。
除了透过编码器加速之外,PHP还可以透过动态的快取机制来提升速度,加速工具有商业版的,例如ZendPlatform,也有开放源代码的加速软件如eAccelerator、APC、XCache。
样板引擎让PHP应用程序可以做逻辑和使用接口上的分离,让程序开发更容易进行,目前比较受欢迎的样板引擎是PHP官方开发的Smarty。不过样板引擎有效能上的争议,因为PHP本身就是一个样板引擎,使用样板引擎反而变成“重新发明了轮子”(reinventingthewheel)。样板引擎最主要的好处就是让不懂PHP程序码的人也可以参与使用接口的开发,因为样板引擎的语言远比PHP简单。
命名空间(namespaces)原本预计在PHP6提供支持,现在可能改至PHP5.3就支持[29
什么是PHP?
php是一种服务器端的,嵌入html的脚本语言。php区别其他像客户端java的地方是它的代码在服务器端执行.php能做什么?
php是一种服务器端的,嵌入html的脚本语言。php区别其他像客户端java的地方是它的代码在服务器端执行.php能做什么?
最低水平,php可以做任何其他cgi程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发cookies.可能最强大,最有意义的特性是php支持大范围的数据库.书写一个支持数据库的web页面是难以置信的简单.
php通过协议也支持与其他服务的"交谈",像imap,snmp,nntp,pop3,甚至是http.你也可以打开晦涩的网络接口和其他协议交互.
1994年秋季,rasmuslerdorf开始构思php.早期的非发行版本被用在他的主页上,以追踪谁在看他的在线简历.1995年年初第一版本出台,当时php只被认为是个人主页开发工具.它由一个非常单纯的只能理解很少数特殊宏的分析引擎和一些用在主页后端通用的工具组成.如留言簿,计数器和其他一些东西.这个分析器在1995年年中被重写并被命名为php/fi第二版.fi来自rasmus写的另外一个包,用于解释html形式的数据.他结合了个人主页工具脚本和形式解析器,并加上msql支持.这样就产生php/fi了.php/fi以令人惊奇的步调成长,人们开始把自己的代码贡献给它.
很难给出它的硬统计表,但可以估计在1996年末,整个世界至少有15,000个网站在用php/fi.到1997年年中,这个数字已经超过50,000了.而在此时php的发展也发生了变化.由rasmus自己偏爱的和几个人开发的项目变成一个更有组织的团体成就.evsuraski和andigutmans重写了解析器.这个新的解析器成为php版本3的基础.许多有用的代码从php/fi继承到php3,并且很多是完全重写的.
今天(1999年年中)不管是php/fi或php3与很多商业产品捆绑在一块,例如c2级强度的web服务器和红帽子linux.根据netcraft提供的数据推断,保守估计全世界应用php的网站已超过150,000个.由此看来,它比在因特网上运行netscape的旗舰企业服务器的站点还多.
1.php是网页文件.需要有支持php的web服务器,才能通过浏览器打开.如果你实在要打开,用记事本也可以打开,不过里面是些网页代码.你不一定读得懂.
2.你所下载的只不过是一个指向(或包含)那个手机铃声的网页,你要真正得到那个铃声的地址才能下载它.
3.应该不是php,是pdf,你把后缀改一下,php文件是网页格式,用文本编辑器打开,但是本站提供的大部分是pdf格式的,安装一个pdf阅读器就能正常打开了.
4.“把扩展名改成html,然后用IE打开。”
5.如果安装了dreamwaver,php文件会显示dreamwaver可以打开的样式
到你下载过的贴子里,看你下载的那个东西的扩展名是什么,比如word文档后面就是.doc,pdf文档后面就是.pdf,压缩文档后面就是.rar或.zip之类的
我以前好像遇到过这种问题,好像是用下载工具下载的时候有些不默认修改回原来的扩展名吧。
一般论坛里的东西都不是很大,直接点击保存就行了,就不会遇到这种情况了
6.记事本就可以了~~~~~~~~~~
7.PHP文件是动态网页文件,它的运行需要ISS服务的支持,如果你想在IE浏览器中打开的话,必须安装ISS服务,否则无法运行。
ISS服务是INTERNET信息服务,安装步骤:
(1)控制面板--添加删除程序--添加删除组件---Internet信息服务--安装。安装完成后,会在管理工具中生成Internet信息服务组件,还会在C盘生成Inetpub文件夹,里面有一个WWWROOT文件夹。
(2)将你PHP文件放到WWWROOT文件夹中,必须是这个文件夹,放在其它文件夹无效.
(3)打开IE浏览器,在地址栏中输入:/****
****是你的PHP文件名,也可以将PHP文件名改为default.asp,这样就不用输入文件名,直接回车就行了,127.0.0.1是指本地机器。
你应该问PHP是什么时候发明的,自从有了互联网以后,中国和世界是联通在一起的,只要世界上有人发明了新的东西,中国人可以在第一时间获得它。所以,PHP的发明时间,就是进入中国的时间。
AndiGutmans是一位瑞士籍犹太人,在1997年和另一位学生ZeevSuraski共同开发出基于PHP-FI的动态直译式程式语言PHP3。次年1998年,两人又基于PHP3,开发出ZendEngine(“Zend”以Zeev及Andi两人名字首音节为名),后来又于1999年创立ZendTechnology,主要业务在于销售PHP相关开发布署工具,是目前全球最知名的PHP相关开发者服务公司之一。
二、php @什么意思
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了 C、Java、Perl以及 PHP自创新的语法。它可以比 CGI或者 Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools(PHP Tools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。
开放的源代码:所有的PHP源代码事实上都可以得到。
基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
简单的语言:PHP坚持脚本语言为主,与Java以C++不同。
效率高:PHP消耗相当少的系统资源。
PHP3跟Apache服务器紧密结合的特性;加上它不断的更新及加入新的功能;而且几乎支持所有主流与非主流数据库;再以它能高速的执行效率,使得PHP在1999年中的使用站点已经超过了150000万。加上它的源代码完全公开,在 Open Source意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新的活力,使得PHP无论在UNIX、LINUX或是Windows的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。
PHP4.0整个脚本程序的核心大幅更动,让程序的执行速度,满足更快的要求。在最佳化之后的效率,已较传统CGI或者ASP等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受,PHP都将在 Web CGI的领域上,掀起巅覆性的革命。对于一位专业的Web Master而言,它将也是必修课程之一。
PHP 4.0是更有效的,更可靠的动态Web页开发工具,在大多数情况运行比 PHP 3.0要快,其脚本描述更强大并且更复杂,最显著的特征是速率比的增加。PHP4.0这些优异的性能是PHP脚本引擎重新设计产生的结果:引擎由 AndiGutmans和 Zeev Suraski从底层全面重写。PHP4.0脚本引擎——Zend引擎,使用了一种更有效的编译——执行方式,而不是PHP 3.0采用的执行——当解析时模型。
PHP4在3.0版的基础上增加或增强了许多有用的特征,主要如下:
(1)别名:在PHP4中,可以利用引用为变量赋值,这给编程带来了很大的灵活性。
(2)扩充了API模块:PHP 4.0为扩展的 API模块的提供了扩展PHP接口模块,它比旧的 API版本显著地快。 PHP模块已有的及最常用的接口多数被转换到使用这个扩展的接口。
(3)自动资源释放:PHP4增加了引用计数功能,这种新技术的引入使PHP4具有了自动内存管理功能,减轻了开发人员的负担。
(4)布尔类型:PHP 4.0支持布尔类型。
(5)进程生成:在 UNIX环境下的 PHP 4.0提供了一个很智能和通用的生成进程,使用了一种名为基于automake/libtool的系统生成技术。
(6)COM/DCOM支持:PHP 4.0提供 COM/DCOM支持(仅用于Windows环境)可以无缝地存取和访问 COM对象。
(7)与PHP 3.0兼容性很好:PHP 4.0是与 PHP 3.0代码向后兼容性接近100%。由于 PHP 4的改进的体系结构,两者有一些细微的差别,但是大多数人将可能永远不可能遇上这种情况。
(8)配置:PHP4重新设计和增强了PHP。ini文件,这使得用PHP。ini来配置PHP显得极为容易,这个文件可以在运行时被Apache(unix系统)或由Windows注册(Windows环境)。
(9)加密支持:PHP4实现了完整的加密,这些加密功能是一个完整的mycrypt库,并且 PHP 4.0支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1也是可使用的一些加密算法。
(10)类型检查:PHP 4.0支持同一操作符用于评类型检查:===( 3等号运算符),为在两个值和其类型之间作检查。例如, 3===3将视为假(类型是不同的),而 3==3(相等判断)将视为真。
(11)FTP支持:PHP 4.0支持 FTP。通常,你会为通过一个调制解调器连接下载一个大文件提供一个接口。然而,如果你确实有需要,可以使用PHP。
(12)PHP4新增函数或功能增强函数:PHP 4.0新增了许多函数,同时也将许多现有的函数功能进行了增强,以下是一些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
(13)here打印:PHP 4.0的Here打印是与Perl类似的,尽管完全不相同。Here是打印大容量文章的一个有用的方法,例如在 HTML文件中,不会漏掉任何一个字符,例如目录标记。
(14)HTTP Session fallback系统:为 HTTP Session管理的一个 fallback系统在 PHP 4.0被实现。缺省情况下,Session标识符由cookies存储。如果没有cookies支持或一项cookies任务失败,Session标识符自动被创建并在 URL的查询字符串中被携带。
(15)ISAPI支持:PHP 4.0能作为一个个性化的 ISAPI模块作为 IIS插件。这比 PHP 3.0更有效,它作为一个外部的程序来运行。
(16)内存:PHP 4.0能更有效的使用内存,导致较少的内存占用消耗,这主要归功于引用计数技术的实现。
(17)其他类成员函数:在 PHP 4.0你能在成员函数本身的作用域或全局范围内调用其他类的成员函数。例如,你能用一个子函数覆盖父函数,并在子函数中调用父函数。
(18)多维数组:在 PHP 4.0,利用GET,POST, Cookies的进行的数据传输支持多维数组。
(19)个性化的 HTTP Session支持:HTTP Session处理,包括 fallback系统管理,在 PHP 4.0被它的新库函数实现。在版本 3.0中处理Session要求使用 PHPLIB和第三方的库函数,它比把Session直接地由 PHP支持慢了许多。
(20)个性化的 Java支持:PHP 4.0支持和java的交互。这种个性化的Java支持为PHP在 Java对象上创建和使用方法提供一个简单并且有效的工具。
21)对象和数嵌套组:PHP 4.0实现了功能更加强大的对象,移去了 PHP 3.0存在的种种句法限制。对象能在数组以内被嵌套并且反过来也如此,可以根据你的需要实现嵌套。
(22)面向对象的编程:PHP 4.0为面向对象的编程和构造类及对象提供扩展的功能和新特征。PHP4实现了对象重载,引用技术等新技术。
(23)对象重载支持:对象重载语法允许第三方的基于面向对象的类库使用 PHP4的面向对象的特征存取他们自身的功能。使用这个特征的一个 COM模块已经被实现了。
(24)输出缓冲支持:PHP提供了一个输出缓冲函数集合。输出缓冲支持允许你写包裹函数功能压缩缓冲区。在 PHP4的输出缓冲支持允许 HTML头信息存放,无论 HTML的正文是否输出。头信息((header(), content type, and cookies)不采用缓冲。
(25)增加了PCRE库:PHP 4.0包括一个 Perl兼容的正则表达式(PCRE)库,和正常regex库一起与 PHP绑定。split和replace PCRE功能被支持。PCRE和 Perl正规表达式之间有一些细微差别。
(26)PHP.ini文件:PHP.ini文件在 PHP4.0被重新设计,使用的 PHP的配置PHP.ini是更容易并且更有效的。全部文件能被Apache在运行时间操作(在 Apache环境下)或由 Windows注册表(在 Windows下面)。被加入PHP.ini文件的配置指令自动地在所有相关的模块中被支持。
(27)引用计数:PHP 4.0为系统中的每个数值提供了引用计数,包括资源。一旦一个资源不再被任何变量引用,它自动地被释放以节省内存资源。利用这个特征的最明显的例子一个内置SQL查询的循环语句。在PHP 3.0中,每次递归另外的 SQL结果集合重复申请内存,直到脚本执行完毕,这些结果集合占用的内存才被释放。
(28)支持引用:通过引用可以改变一个变量的值。
(29)函数的运行时绑定:PHP 4.0的运行时间绑定功能允许你在他们被声明以前调用,无论声明是否在代码以后或是在运行时间。
(30)类的运行时信息:PHP 4.0支持在运行时刻存取下列类信息:一个对象的类名,一个对象的父类的类名字,以及对象函数所在的名字。
(31)服务器抽象层:为支持Web服务器提供了增强型 SAPI(服务器 API)接口,是 PHP 4。0不可分的一部分。这个服务器抽象层,提供了通用的WEB服务器接口支持,支持多线程WEB服务器,为大多数的WEB服务器提供透明的支持,这些服务器包括 Apache,IIS( ISAPI),以及 AOL服务器。