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源代码事实上都可以得到。
php是免费的。
基于服务器端:由于php是运行在服务器端的,即使再多的用户,再复杂的程序也不会影响运行的速度。
跨平台:php可以运行在unix、linux、windows下。
嵌入html:因为php可以嵌入html语言,所以学习起来并不困难。
简单的语言:php坚持脚本语言为主,与java以c++不同。
效率高:php消耗相当少的系统资源。
图像处理:用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 服务器。
(32)语法的点亮显示:php 4.0 语法的点亮显示允许开发者看见源代码而不是脚本, 这个功能比php 3。0中的更有效。它跑得更快,更执行得更好,并且产生更紧凑的html代码。
(33)由引用改变变量的值:php 4.0 由引用支持可变的赋值, “关联”的2个变量之中个的任何一个的值被改变,另外的变量的值同样被改变,这类似与c中的指针类型。
(34)在引用字符串中的变量引用:php 4.0 增强了在引用字符串中的变量引用。例如, 这个例子在 php 3.0中 是不可能做到的 : print ${a[0]->bingo}
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实例
first program
http://www.bkjia.com/phpjc/446898.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/446898.htmltecharticlephp,一个嵌套的缩写名称,是英文“超级文本预处理语言”(php:hypertext preprocessor)的缩写。php 是一种 html 内嵌式的语言,php与微软的asp颇...