您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP的SOAP原理及实现详解

2025/7/9 4:15:23发布38次查看
php的soap原理及实现
1. 简介:
soap : (全称simple object access protocol) 为交换数据的一种协议规范,该通信协议位于http之上,以xml格式语言进行数据互换,使用场景:如果各项目之间使用不用的开发语言要进行数据互换,就需要一个互相都能通信的工具,wsdl,soap为此诞生
wsdl: wsdl 指网络服务描述语言 (web services description language),wsdl 是一种使用 xml 编写的文档。这种文档可描述某个 web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
2. 配置:
php的soap扩展开启及配置
win环境
打开php.ini   extension=php_soap.dll去掉前面的分号
linux环境
编译时加上   --enable-soap
wsdl缓存类型 1为磁盘   2为内存
soap.wsdl_cache = 1
缓存文件保存位置
soap.wsdl_cache_dir = /tmp
开启或关闭wsdl缓存功能,由于每次进行soap都会有下载对方xml文档的过程,也是其效率低下的原因
soap.wsdl_cache_enabled =1
缓存文件的最大数量
soap.wsdl_cache_limit
缓存文件生存时间
soap.wsdl_cache_ttl = 3600
3. 应用实例:
a. 不使用wsdl的情况
服务端:
index.php));$a->setclass(testclass); //指定一个类中的所有方法//$a->addfunction(test); //指定单个方法$a->handle(); //处理访问
uri为必填项,客户端的uri必须和服务端的保持一致
客户端
try{ $client = new soapclient(null, array(location=>http://localhost/instance/index.php,uri=>index.php)); //echo $client->getname(getname); //调用方法 echo $client->__soapcall (getname,array(name)); //调用方法 }catch(exception $e){ print_r($e->getmessage(),true);}
location为soap服务端访问地址,uri与服务端保持一致
b. 使用wsdl方法
因使用wsdl之前需要手动生成xml文件,手写的话太过繁琐,可使用soapdiscovery.class.php 开源类生成
下载地址 
getwsdl(); //生成xml文件echo $filename;
服务端
$a = new soapserver(testclass.wsdl);$a->setclass(testclass); //指定一个类中的所有方法$a->handle(); //处理访问
客户端
try{ $client = new soapclient(http://localhost/instance/index.php?wsdl); //echo $client->getname(getname); //echo $client->__soapcall (getname,array(name)); print_r($client->__getfunctions()); //打印服务端所有提供的方法
}catch(exception $e){ print_r($e->getmessage(),true);}
扩展类所提供的方法可参考php manual
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product