PHP中使用SOAP
php提供了一个专门用于soap操作的扩展库,使用该扩展库后可以直接在php中进行soap操作。从php5.0后,php就自带了soap的支持。在php.ini文件中找到如下所示的一行代码,去掉前面的注释(;)。
;extension=php_soap.dll
修改后,重启web服务器即可激活soap扩展。
1、SoapServer
$soap = new SoapServer($wsdl,$array);
2、SoapClient
$soap = new SoapClient($wsdl,$array);
3、SoapFault
$fault = new SoapFault($faultcode,$faultstring);
有两种引用方式:
第一种是引入wsdl文件,第二种是不用wsdl文件,下面给出的是不用wsdl文件。
服务器端
<?php
class service
{
public function HelloWorld()
{
return "Hello";
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server=new SoapServer(null,array('uri' => "abcd"));
$server->setClass("service");
$server->handle();
?>
客户端
<?php
try{
$soap = new SoapClient(null,array(
"location" => "http://localhost/interface/soap.php",
"uri" => "abcd", //资源描述符服务器和客户端必须对应
"style" => SOAP_RPC,
"use" => SOAP_ENCODED
));
echo $soap->Add(1,2);
}catch(Exction $e){
echo print_r($e->getMessage(),true);
}
?>