添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

PHP5中的这个SOAP扩展目的是为了实现PHP对Web services的支持。与其它实现PHP对Web services的支持的方法不同,SOAP扩展是用C写的,因此它比其它方法具有速度优势

SOAP扩展支持以下规范。

* SOAP 1.1
* SOAP 1.2
* WSDL 1.1

SOAP扩展主要用来处理RPC形式的Web services。不过,你也可以使用文本形式的WSDL文件配合WSDL模式的服务端和客户端。

一、Linux下安装soap模块
安装完php后最好保留当时安装的文件,比如usr/local/php-5.3.2
查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看

如:/usr/local/php/bin/php -m |grep ‘soap’
如果没有安装,则进入php的安装源文件夹
cd php-5.3.2/ext/soap
进入后在此运行phpize命令
/usr/local/php/bin/phpize
查看信息是否有出错,没有出错的话运行如下命令:
./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap
然后是安装编译
make
最后是安装
make install
安装好之后会提示soap.so文件的保存路径
编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222目录下,接着修改php.ini文件
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = “./”,默认是注释掉的
修改为extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222/”
并在此行后增加如下,然后保存:
extension = “soap.so”
重新启动 apache ,在运行php -m就已经能看到扩展的soap模块了。
如果还要安装扩展别的模块可以以此类推。


二、Windows下安装soap模块


在Windows下可以通过修改php.ini来选择当PHP启动时加载哪些扩展库。也可以在脚本中通过使用 dl()来动态加载。PHP扩展库的DLL文件都具有php_前缀。很多扩展库都内置于Windows版的PHP之中。这意味着要加载这些扩展库不需要额外的DLL文件和extension配置指令。Windows下的PHP扩展库列表列出了需要或曾经需要额外PHP DLL文件的扩展库。
要在php.ini中启用某扩展库,需要去掉该行extension=php_*.dll前的注释符号,将想要加载的扩展库前的分号(;)删除即可。
启用php_soap.dll扩展库
// 将这一行
;extension=php_soap.dll
// 改成这样
extension=php_soap.dll
Note: 如果运行服务器模块版的PHP,在修改了php.ini之后别忘了重新启动web服务器以使其改动生效。
下面是内置的扩展库列表:
php_bz2.dll   bzip2压缩函数库
php_calendar.dll  历法转换函数库
php_crack.dll   密码破解函数库
php_ctype.dll   ctype家族函数库
php_curl.dll   CURL,客户端URL库函数库
php_dba.dll   DBA: 数据库 (dbm 风格)抽象层函数库
php_dbase.dll   dBase函数库
php_dbx.dll   dbx函数库
php_domxml.dll   DOM XML函数库
php_dotnet.dll   .NET函数库
php_exif.dll   EXIF函数库
php_fbsql.dll   FrontBase函数库
php_fdf.dll   FDF:表单数据 格式化 函数库
php_filepro.dll  filePro函数库
php_ftp.dll   FTP函数库
php_gd.dll   GD库图像函数库
php_gd2.dll   GD库图像函数库
php_gettext.dll  Gettext函数库
php_hyperwave.dll  HyperWave函数库
php_ iconv .dll   ICONV字符集转换
php_ifx.dll   Informix函数库
php_iisfunc.dll  IIS 管理函数库
php_imap.dll   IMAP,POP3 和 NNTP 函数库
php_ingres.dll   Ingres II函数库
php_interbase.dll  InterBasefunctions
php_java.dll   Java函数库
php_ldap.dll   LDAP函数库
php_mbstring.dll  多字节字符串函数库
php_mcrypt.dll   Mcrypt 加密函数库
php_mhash.dll   Mhash函数库
php_mime_magic.dll  Mimetype函数库
php_ming.dll   Ming函数库(Flash)
php_msql.dll   mSQL函数库
php_mssql.dll   MSSQL函数库
php_mysql.dll   MySQL函数库
php_mysqli.dll   MySQLi函数库
php_oci8.dll   Oracle 8函数库
php_openssl.dll  OpenSSL函数库
php_overload.dll  对象重载函数库
php_pdf.dll   PDF函数库
php_pgsql.dll PostgreSQL 函数库
php_printer.dll 打印机 函数库
php_shmop.dll   共享内存函数库
php_snmp.dll   SNMP函数库
php_soap.dll   SOAP函数库
php_sockets.dll  Socket函数库
php_sybase_ct.dll  Sybase函数库
php_tidy.dll   Tidy函数库
php_tokenizer.dll  Tokenizer函数库
php_w32api.dll   W32api函数库
php_xmlrpc.dll   XML-RPC函数库
php_xslt.dll   XSLT函数库
php_yaz.dll   YAZ函数库
php_zip.dll   Zip文件函数库
php_zlib.dll   ZLib压缩函数库


SOAP模块的使用方法


首先我们来了解一下SOAP扩展的三个主要对象:
1.SoapServer

$arr = array(
'location' => 'http://192.168.187.132/server.php',
'uri'      => 'http://192.168.187.132/'
$soap = new SoapServer( null ,$arr );
$soap->addFunction(SOAP_FUNCTIONS_ALL);  //允许客户端调用所有的方法
$soap->handle();     function a(){
return '李坏博客';
function b($b){
return $b;
$arr = array(
'location' => 'http://192.168.187.132/server.php',
'uri'      => 'http://192.168.187.132/'
$soap = new SoapClient( null, $arr );
echo $soap->a(),'<br />';
echo $soap->b('b');