PHP5的扩展库
时间:2010-04-28 来源:lsstarboy
PHP5的扩展库
PHP5的扩展库包括标准库SPL(Standard PHP Library)和外部扩展PECL(PHP Extension Community Library)。标准库即被编译到PHP内部的库。历史上标准库指的是Standard扩展(默认即编译进 PHP),但5.0出现后,标准库实际上成了代名词。PHP5新增内置标准扩展库:XML扩展库——DOM,SimpleXML以及 ICONV,SQLite等,而类似MySQL、MySQLI、Overload,GD2等这些库则被放在PECL外部扩展库中,需要时在php.ini 配置文件中选择加载。
一、XML扩展
在PHP5中,所有的XML扩展已经被全部重写,使用libxml2中的XML工具包(参考网址:http://www.xmlsoft.org/), 它为PHP的XML操作提供了更多丰富和高可维护性的技术。
在PHP5.1后,上述所有扩展(包括SAX\DOM及XSLT)已经全部集成在PHP软件发行包中,其中包括SimpleXML和SOAP功 能。我们可以用PHP5提供对XML的强大处理功能,比如对RSS\Web Service的数据分析、处理等。
1、DOM
DOM全称为Document Object Model,在PHP4版本中,已经使用了libxml2库对DOM的支持,但是存在内存泄漏的Bug,并且该API对W3C也不太兼容。
在PHP5中,DOM扩展已经实现完全支持,不仅是扩展库已经重新写并被集成到PHP,而且对W3C标准全面兼容。
2、SimpleXML
现在PHP开发者在操作使用XML时,又多了一种选择—— SimpleXML,这是PHP5全新开发的外部扩展库,用以替代DOM或较难用的SAX。
SimpleXML将XML文件视为一个PHP对象,可以读写以及重载,而只需要简单的访问元素以及属性就可以了,请看下面的XML文件。
<clients>
<client>
<name>张三</name>
<account_number>8801872348385371</account_number>
</client>
<client>
<name>李四</name>
<account_number>8801723843291345</account_number>
</client>
</clients>
下列程序将打印XML文件中的每个客户的名字和帐号
<?php
$clients = simplexml_load_file('clients.xml') ;
foreach($clients->client as $client){
echo "$client->name 的账号名称 $client->account_number\n ;
}
?>
3、XML Reader
PHP5引入了新的类XMLReader,用于读取可扩展标记语言(Extensible Markup Language,XML)。与DOM和SimpleXML不同的是,XML Reader以流的模式进行操作,即从头到尾读取文档,在文档后面的内容编译完成之前,可以先处理已编译好的文档前面的内容,从而实现快速、高效、节省的 使用内存。
4、SOAP扩展
SOAP协议(Simple Object Access Protocal ,简单对象访问协议)是WEB服务(Web Service)的一种,用以解决异构系统之间的信息传递问题,如PHP与.NET Web Service之间的消息共享,PHP与Java Web Service的互通等。
在PHP5中,已经完全重写了对SOAP支持的扩展库,也不需要再使用Pear SOAP或nusoap类库。下例为调用SomeFunction()的一个WSDL文件。
<?php
$client = new SoapClient("someurl.wsdl") ;
$client -> SomeFunction($a , $b , $c) ;
?>
由于SOAP功能被PHP5封装在内部扩展库中,执行速度与效率都比使用外部类库要高,这样能够更容易创建和使用WEB服务。
二、SPL
SPL-Standard Library (PHP标准库)是为解决一些在WEB开发中普遍存在的问题,在PHP5中提供了一系列的接口(interface)和类(class)的类库。
SPL为PHP开发者提供了迭代器(Iterator)、数组对象(ArrayObject)、运行时异常处理 (RuntimeException、InvalidArgumentException等)、观察者模式(Observer Parttern)等数据容器与解决方案。
可以使用下面方法查看可用的SPL类。
<?php
print_r(spl_class) ;
?>
三、MySQLi扩展
PHP5重新编写了一套新的MySQL数据库扩展库——MySQLi,它提供了新的特性以及针对新版本MySQL5.X的优化功能,这个扩展提供了 两个接口,分别用于面向过程的和面向对象,PHP开发者可以任选一种样式进行开发。
MySQLi扩展还支持prepared预执行、变量绑定以及SSL连接支持、数据压缩连接、事务控制等实用的功能和方法。
四、PDO数据库抽象层
PDO(PHP Data Object)是PHP5中新加入的数据库抽象层,直接预装到PHP的扩展中,主要为了解决访问不同数据库统一接口的问题。
PDO类似于数据库抽象层对象驱动(Database Abstraction Layer),如PEAR :: DB类和ADODB数据库抽象类的操作,这给数据库间迁移的通用性和开发程序的易用性带来极大的方便。
如果采用PDO扩展进行WEB开发,可以像使用著名的ADODB、PEAR :: DBS数据库抽象类一样,使用像fetchAll,fetchAssoc等多种方法取得记录集,使程序逻辑更简洁清晰。
由于PDO是底层开发的C代码开发编译,因此执行效率较高,同时也提高了PHP代码层的通用性和可读性,调试起来更加方便。
PDO是随PHP5.1软件包正式分发的,目前已经支持绝大多数的主流数据库系统,如MySQL,Oracle,MS SQL Server等常用的数据库管理系统。
五、JSON扩展
JSON全称为JavaScript Object Notation,是一种非常轻量级的数据交换格式,自PHP5.2起,正式在内部集成JSON功能。
JSON是基于JavaScript Programming Language , Stantard ECMA-262 3rd Edition-Dcember 1999的一个子集,它主要利用了成对的{}来包住各个object(对象),用成对的[ ]来包住各个array(数组),用成对的" "来包住字符串,用逗号来区隔各变量,数据类型有字符串(string),数组(array),对象(object)。
JSON主要用于JavaScript与服务器端脚本的交互。
PHP5的扩展库包括标准库SPL(Standard PHP Library)和外部扩展PECL(PHP Extension Community Library)。标准库即被编译到PHP内部的库。历史上标准库指的是Standard扩展(默认即编译进 PHP),但5.0出现后,标准库实际上成了代名词。PHP5新增内置标准扩展库:XML扩展库——DOM,SimpleXML以及 ICONV,SQLite等,而类似MySQL、MySQLI、Overload,GD2等这些库则被放在PECL外部扩展库中,需要时在php.ini 配置文件中选择加载。
一、XML扩展
在PHP5中,所有的XML扩展已经被全部重写,使用libxml2中的XML工具包(参考网址:http://www.xmlsoft.org/), 它为PHP的XML操作提供了更多丰富和高可维护性的技术。
在PHP5.1后,上述所有扩展(包括SAX\DOM及XSLT)已经全部集成在PHP软件发行包中,其中包括SimpleXML和SOAP功 能。我们可以用PHP5提供对XML的强大处理功能,比如对RSS\Web Service的数据分析、处理等。
1、DOM
DOM全称为Document Object Model,在PHP4版本中,已经使用了libxml2库对DOM的支持,但是存在内存泄漏的Bug,并且该API对W3C也不太兼容。
在PHP5中,DOM扩展已经实现完全支持,不仅是扩展库已经重新写并被集成到PHP,而且对W3C标准全面兼容。
2、SimpleXML
现在PHP开发者在操作使用XML时,又多了一种选择—— SimpleXML,这是PHP5全新开发的外部扩展库,用以替代DOM或较难用的SAX。
SimpleXML将XML文件视为一个PHP对象,可以读写以及重载,而只需要简单的访问元素以及属性就可以了,请看下面的XML文件。
<clients>
<client>
<name>张三</name>
<account_number>8801872348385371</account_number>
</client>
<client>
<name>李四</name>
<account_number>8801723843291345</account_number>
</client>
</clients>
下列程序将打印XML文件中的每个客户的名字和帐号
<?php
$clients = simplexml_load_file('clients.xml') ;
foreach($clients->client as $client){
echo "$client->name 的账号名称 $client->account_number\n ;
}
?>
3、XML Reader
PHP5引入了新的类XMLReader,用于读取可扩展标记语言(Extensible Markup Language,XML)。与DOM和SimpleXML不同的是,XML Reader以流的模式进行操作,即从头到尾读取文档,在文档后面的内容编译完成之前,可以先处理已编译好的文档前面的内容,从而实现快速、高效、节省的 使用内存。
4、SOAP扩展
SOAP协议(Simple Object Access Protocal ,简单对象访问协议)是WEB服务(Web Service)的一种,用以解决异构系统之间的信息传递问题,如PHP与.NET Web Service之间的消息共享,PHP与Java Web Service的互通等。
在PHP5中,已经完全重写了对SOAP支持的扩展库,也不需要再使用Pear SOAP或nusoap类库。下例为调用SomeFunction()的一个WSDL文件。
<?php
$client = new SoapClient("someurl.wsdl") ;
$client -> SomeFunction($a , $b , $c) ;
?>
由于SOAP功能被PHP5封装在内部扩展库中,执行速度与效率都比使用外部类库要高,这样能够更容易创建和使用WEB服务。
二、SPL
SPL-Standard Library (PHP标准库)是为解决一些在WEB开发中普遍存在的问题,在PHP5中提供了一系列的接口(interface)和类(class)的类库。
SPL为PHP开发者提供了迭代器(Iterator)、数组对象(ArrayObject)、运行时异常处理 (RuntimeException、InvalidArgumentException等)、观察者模式(Observer Parttern)等数据容器与解决方案。
可以使用下面方法查看可用的SPL类。
<?php
print_r(spl_class) ;
?>
三、MySQLi扩展
PHP5重新编写了一套新的MySQL数据库扩展库——MySQLi,它提供了新的特性以及针对新版本MySQL5.X的优化功能,这个扩展提供了 两个接口,分别用于面向过程的和面向对象,PHP开发者可以任选一种样式进行开发。
MySQLi扩展还支持prepared预执行、变量绑定以及SSL连接支持、数据压缩连接、事务控制等实用的功能和方法。
四、PDO数据库抽象层
PDO(PHP Data Object)是PHP5中新加入的数据库抽象层,直接预装到PHP的扩展中,主要为了解决访问不同数据库统一接口的问题。
PDO类似于数据库抽象层对象驱动(Database Abstraction Layer),如PEAR :: DB类和ADODB数据库抽象类的操作,这给数据库间迁移的通用性和开发程序的易用性带来极大的方便。
如果采用PDO扩展进行WEB开发,可以像使用著名的ADODB、PEAR :: DBS数据库抽象类一样,使用像fetchAll,fetchAssoc等多种方法取得记录集,使程序逻辑更简洁清晰。
由于PDO是底层开发的C代码开发编译,因此执行效率较高,同时也提高了PHP代码层的通用性和可读性,调试起来更加方便。
PDO是随PHP5.1软件包正式分发的,目前已经支持绝大多数的主流数据库系统,如MySQL,Oracle,MS SQL Server等常用的数据库管理系统。
五、JSON扩展
JSON全称为JavaScript Object Notation,是一种非常轻量级的数据交换格式,自PHP5.2起,正式在内部集成JSON功能。
JSON是基于JavaScript Programming Language , Stantard ECMA-262 3rd Edition-Dcember 1999的一个子集,它主要利用了成对的{}来包住各个object(对象),用成对的[ ]来包住各个array(数组),用成对的" "来包住字符串,用逗号来区隔各变量,数据类型有字符串(string),数组(array),对象(object)。
JSON主要用于JavaScript与服务器端脚本的交互。
相关阅读 更多 +