PHP教程

PHP

PHP教程

PHP(PHP:Hypertext Preprocessor)是一种在计算机上运行的服务器脚本语言,主要是用途在于处理动态网页,也包含了命令行运行界面(command line interface),或者产生图形用户界面(GUI)程序。PHP 6是最新即将出的PHP版本

PHP 的应用范围广泛,尤其是在网页程序的开发上。PHP 大多运行在网页服务器上,通过运行PHP代码来产生用户浏览的网页。PHP 可以在多数的服务器和操作系统上运行,而且使用 PHP 完全是免费的。根据2007年4月的统计数据,PHP 已经被安装在超过2000万个网站和100万台服务器上。

点击左侧菜单开始学习PHP教程,或选择你感兴趣的内容。

PHP版本开发历程

PHP 原意是Personal Home Page的简称,是Rasmus Lerdorf 为了维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl 程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些窗体解释器集成起来,称为 PHP/FI。

PHP/FI 可以和数据库连接,产生简单的动态网页程序。Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以通过社群来加速程序开发与查找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。

在1997年,任职于 Technion IIT 公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的解析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为PHP: Hypertext Preprocessor.。最后在1998年6月正式释出 PHP 3。他们在 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。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个访问数据库的延伸函数库)、以及许多效能上的增强。

2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。

主要版本 次要版本 释出日期 PHP版本说明
1.0 1.0.0 1995年6月8日 正式名称为"Personal Home Page Tools (PHP Tools)",第一次使用了"PHP"的名字。
2.0 2.0.0 1996年4月16日 针对PHP 1.0的改进版,速度更快、体积更小,更容易产生动态网页。
3.0 3.0.0 1998年6月6日 开发方式改成多人共同参与。Zeev Suraski 和 Andi Gutmans 为了这个版本重写了解析引擎。
4.0 4.0.0 2000年5月22日 改成以Zend引擎作为解析器,具有两阶段解析/标签解析系统等先进功能。
4.1.0 2001年12月10日 加入"超全局变量"(superglobals)功能,包含了$_GET、$_POST、 $_SESSION等
4.2.0 2002年4月22日 默认取消register_globals功能。从网络接收的数据将不会设置成全局变量,增加程序安全性
4.3.0 2002年12月27日 加入命令行运行档,称为CLI。
4.4.0 2005年7月11日 Added man pages for phpize and php-config scripts
4.4.8 2008年1月3日 Several security enhancements and bug fixes. Was to be the end of life release for PHP 4. Security updates only until 2008-08-08, if necessary
4.4.9 2008年8月7日 More security enhancements and bug fixes. The last release of the PHP 4.4 series
5.0 5.0.0 2004年7月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月2日 Enabled the filter extension by default
5.2.8 2008年12月8日 emergent bug fix
5.2.9 2009年2月26日 解决了5.2.*的超过了50多个错误和多个安全问题,增加了稳定性。
5.2.10 2009年6月18日 这个版本修正了大量的bug和安全漏洞,并升级了时区数据库。
5.3.0 2009年6月30日 支持命名空间; 使用XMLReader和XMLWriter增强XML支持; 支持SOAP,延迟静态绑定, 跳转标签(有限的 goto), 闭包,Native PHP archives
6.0 6.0.0 ?年?月?日 支持Unicode; 移除ereg扩展, 'register_globals', 'magic_quotes' 和 'safe_mode'; Alternative PHP Cache;Removal of mime_magic and rewrite of fileinfo() for better MIME support

注:PHP 版本 1.0.0 - 5.1.0 官方停止支持; 5.2.0 - 5.2.9 官方维护中;

PHP 版本 5.2.10 - 5.3.0 目前版本; 6.0.0 未来版本。

PHP应用

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

PHP相关资源

PHP函数库

PHP函数库列表

内置多样化的函数是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。

PHP常见的模板引擎

模板引擎让PHP应用程序可以做逻辑和使用界面上的分离,让程序开发更容易进行,目前比较受欢迎的模板引擎是PHP官方开发的Smarty。不过模板引擎有效能上的争议,因为PHP本身就是一个模板引擎,使用模板引擎反而变成“重新发明了轮子”(reinventing the wheel)。模板引擎最主要的好处就是让不懂PHP代码的人也可以参与使用界面的开发,因为模板引擎的语言远比PHP简单。

PHP数据库

PHP 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:

  
  • Adabas D
  • DBA
  •   
  • dBase
  •   
  • dbm
  •   
  • filePro
  •   
  • Informix
  •   
  • InterBase
  •   
  • mSQL
  •   
  • Microsoft SQL Server
  •   
  • MySQL
  •   
  • Solid
  •   
  • Sybase
  •   
  • ODBC
  •   
  • Oracle 8
  •   
  • Oracle
  •   
  • PostgreSQL
  

而在 Internet 上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网络新闻 NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的相关函数。

  

除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程序。面对快速发展的 Internet,这是长期规划的最好选择。

PHP发展

PHP 6PHP的未来版本,更加精彩。

  • 支持Unicode。
  • 移除ereg扩展, 'register_globals', 'magic_quotes' 和 'safe_mode'; Alternative PHP Cache;Removal of mime_magic and rewrite of fileinfo() for better MIME support
  • 其它改进。

服务器脚本语言PHP 服务器脚本语言  PHP教程 PHP教程