首页 >> 网络营销词典 >> 其他类别 >> PHP源码

PHP源码[编辑]


开发历史 

PHP原本的简称为Personal Home Page,是拉斯姆斯·勒多夫为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。最初这些工具程序用来显示拉斯姆斯·勒多夫的个人履历,以及统计网页流量[6]。他将这些程序和一些窗体解释器集成起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程序。拉斯姆斯·勒多夫在1995年6月8日将PHP/FI公开发布,希望可以通过社区来加速程序开发与查找错误[7]。这个发布的版本命名为PHP 2,已经有今日PHP的一些雏型,像是类似Perl的变数命名方式、窗体处理功能、以及嵌入到HTML中运行的能力。程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。

在1997年,任职于Technion IIT公司的两个以色列程序员:Zeev Suraski和Andi Gutmans,重写了PHP的语法分析器,成为PHP 3的基础,而PHP也在这个时候改称为PHP: Hypertext Preprocessor.[6]。经过几个月测试,开发团队在1997年11月发布了PHP/FI 2,随后就开始PHP 3的开放测试,最后在1998年6月正式发布PHP 3。Zeev Suraski和Andi Gutmans在PHP 3发布后开始改写PHP的核心,这个在1999年发布的语法分析器称为Zend Engine,他们也在以色列的Ramat Gan成立了Zend Technologies来管理PHP的开发。

在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式发布,2004年7月13日则发布了PHP 5,PHP 5则使用了第二代的Zend Engine[6]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个访问数据库的延伸库)、以及许多性能上的增强[9]。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。

2008年PHP 5成为了PHP唯一维护中的稳定版本。最新的发布版本为PHP 5.6.9。

PHP 7的开发也正在进行中,主要的改进有PHPNG、JIT引擎、抽象语法树编译、异步编程。

版本历程

代表意义
红色 旧版;官方停止支持
黄色 旧版;官方维护中
绿色 当前版本
蓝色 未来版本
主要版本 次要版本 发布日期 说明
1.0 1.0.0 1995年06月08日 正式名称为"Personal Home Page Tools (PHP Tools)",第一次使用了"PHP"的名字。
2.0 2.0.0 1996年04月16日 针对PHP 1.0的改进版,速度更快、体积更小,更容易产生动态网页。[6]
3.0 3.0.0 1998年06月06日 开发方式改成多人共同参与。Zeev Suraski和Andi Gutmans为了这个版本重写了剖析引擎。
4.x 4.0.0 2000年05月22日 改成以Zend引擎作为语法分析器,具有两阶段剖析/标签剖析系统等先进功能。
4.1.0 2001年12月10日 加入"超全域变数"(superglobals)功能,包含了$_GET、$_POST、$_SESSION等。
4.2.0 2002年04月22日 默认取消register_globals功能。从网络接收的数据将不会设置成全域变数,增加程序安全性。
4.3.0 2002年12月27日 加入命令行可执行文件,称为CLI。
4.4.0 2005年07月11日 Added man pages for phpize and php-config scripts.
4.4.8 2008年01月03日 一些安全性的增强。曾可能为PHP 4的最后版本。若有必要,提供安全性更新到2008-08-08。
4.4.9 2008年08月07日 更多安全性增强和问题修补。PHP 4.4系列的最后版本。
5.x 5.0.0 2004年07月13日 Zend Engine II with a new object model.
5.1.0 2005年11月24日 Performance improvements with introduction of compiler variables in re-engineered PHP Engine.
5.2.0 2006年11月02日 默认打开"过滤"的扩展。
5.2.8 2008年12月08日[16] emergent bug fix。
5.2.9 2009年02月26日[17] 解决了5.2.*的超过了50多个错误和多个安全问题,增加了稳定性。
5.2.10 2009年06月18日[18] 这个版本修正了大量的bug和安全漏洞,并升级了时区数据库。
5.2.17 2011年01月06日[19] 修正了一个浮点数转化的Bug。
5.3.0 2009年06月30日[20] 支持命名空间;使用XMLReader和XMLWriter增强XML支持;支持SOAP ,[21]延迟静态绑定,跳转标签(有限的goto), 闭包,Native PHP archives。
5.3.3 2010年07月22日[22] 使用命名空间的类中,与类同名的成员函数不再作为构造函数。
5.3.6 2011年03月17日[24] 修正一系列Bug。
5.3.10 2012年02月02日 修正了Stefan Esser报告的任意远程代码执行漏洞,CVE-2012-0830。
5.4.0 2012年03月01日 支持Trait、简短数组表达式。移除了register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister(), magic_quotes以及session_is_registered()。加入了内建的Web服务器。[26]增强了性能,减小内存使用量。
5.5.0 2013年06月20日 支持generators,用于异常处理的finally ,将OpCache(基于 Zend Optimizer+)加入官方发布中。
5.6.0 2014年08月28日 支持常量标量表达式、可变参数函数、指数运算符,增加phpdbg SAPI、统一的默认字符集。[27]
6.x 未发布 不适用 取消掉的、从未正式发布的PHP版本。
7.x 7.0.0 2015年11月28日

应用

PHP是一个应用范围很广的语言,特别是在网络程序开发方面。一般来说PHP大多在服务器端运行,通过运行PHP的代码来产生网页提供浏览器读取,此外也可以用来开发命令行脚本程序和用户端的GUI应用程序。PHP可以在许多的不同种的服务器、操作系统、平台上运行,也可以和许多数据库系统结合。使用PHP不需要任何费用,官方组织PHP Group提供了完整的程序源代码,允许用户修改、编译、扩充来使用。

安全

据National Vulnerability Database数据显示,与PHP有关的数据库攻击比例为:20% 2004, 28% 2005, 43% 2006, 36% 2007, 35% 2008 and 32% 2009[32]。其中很多的漏洞都可以通过远程操作完成,如:黑客可以通过网络连接攻击服务器,达到盗取或毁坏数据,发送垃圾邮件或进行分布式拒绝服务攻击。但是随着更多的关注,PHP也变得越来越安全了。

PHP官网被黑事件
2010年12月17日,PHP代码“贡献者名单”中被加入“Wolegequ Gelivable”字样(中文含义“我勒个去 给力”),约半小时后被删除。[33][34][35]2011年3月19日,PHP官方发布声明[36]指出,黑客可能是通过wiki.php.net作为入口攻击了代码系统。并且,官方已经检查过自版本5.3.5以来发布的代码,并没有发现恶意内容。但官方同时表示,尚未完全掌握黑客发动本次攻击的具体细节。

PHP框架

使用PHP框架可以更快更简单的部署项目并提高开发效率,但学习使用这些框架需要付出额外的学习成本。

最流行的PHP框架包括:Symfony, Zend Framework, Laravel、Phalcon、CodeIgniter、Yii等等。

内置多样化的函数是PHP主要的特点之一,这些开放代码的函数提供了各种不同的功能,例如文件处理、FTP、字符串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。

除了内置的函数之外,PHP也提供了很多扩展库(extension),像是各种数据库连接函数、数据压缩函数、图形处理等等。有些延伸库需要从PECL(PHP Extension Community Library)获取。

以下是PHP编程语言提供的库列表

PHP源代码是可以直接读取的,即使放到服务器上运行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。

通过PHP编码器,可以保护PHP的源代码不被读取(对商业软件来说特别有需求),也可以提升运行的性能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码(byte code),再通过服务器上安装对应的程序来运行PHP脚本。

除了通过编码器加速之外,PHP还可以通过动态的缓存机制来提升速度,加速工具有商业版的,例如Zend Platform,也有开放源代码的加速软件如eAccelerator、APC、XCache。

 

 
参考资料:
扩展阅读:
相关词条:
合作编辑:

林哥 

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:0

编辑次数:0历史版本

创建者:林哥

最近更新:2015/12/3 2:06:14

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。