我最近更改了主机,发现它们只支持Pear的Soap_Client类,而不支持标准的PHP SoapClient类,而在我进行切换之前在论坛中说的相反。是否有一种特定的语法可以轻松地从一种语言切换到另一种语法?我不熟悉PEAR Soap_Client类来了解足以进行转换的差异。因此,即使两者之间的明确区分也将受到高度赞赏。我已经基于此运行了几个类/功能/方法,而且此时必须切换主机是相当浪费的。提前谢谢!
修改
以下是我称之为课程的小片段:
try {
$soapClient = new SoapClient(
$this->webserviceWsdl,
array(
'exceptions' => 1,
'trace' => 1
)
);
} catch (SoapFault $fault) {
return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
}
try {
$soapClient->__setLocation(str_replace(
'%%foo%%',
$this->responseConfig['foo'],
$this->webserviceEndpoint
));
} catch (SoapFault $fault) {
return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
}
try {
$soapClient->__setSoapHeaders($this->buildSoapHeader($function));
return $soapClient->__soapCall($function, array($params));
} catch (SoapFault $fault) {
return json_decode(json_encode(array('status' => 'invalid', 'msg' => "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})")),1);
}
答案 0 :(得分:0)
不,没有简单的方法可以让您的代码使用PEAR的SoapClient类而不是PHP的内置类。他们的API太不同了。
那就是说,你不应该使用PEAR的SOAP客户端库,因为它没有维护。
尝试说服托管商在他们的服务器上安装php-soap软件包 - 这并不难。