我创建了一个webservice,它返回一个响应的数组,我的web服务是在我的控制器中用Zend构建的,我这样做:
$soap = new Zend_Soap_Server("http://blabla/wsdl");
$soap->setClass('Foo');
$soap->handle();
exit;
这是具有我调用函数的Foo类:
class Foo {
/**
* Test general
* @param Int $param
* @return Array
*/
public function general($param) {
return array('a' => 'b');
}
}
我称之为:
$options = array(
"trace" => 1,
"exceptions" => 0,
"cache_wsdl" => 0
);
$soap = new SoapClient('http://blabla/wsdl', $options);
print_r('<pre>');print_r($soap->general(6));
exit;
但是,我不希望它返回一个数组,而是一个xml ......我怎么能这样做?
答案 0 :(得分:4)
要将最后一个响应XML检索为字符串,请调用SoapClient::__getLastResponse()
。
$response = $soap->general(6);
$response_xml = $soap->__getLastResponse();
这需要启用trace
选项,您已经在执行此操作。
答案 1 :(得分:-1)
以下是类似的问:How to convert array to SimpleXML
class Foo {
/**
* Test general
* @param Int $param
* @return Array
*/
public function general($param) {
//return array('a' => 'b');
$xml = new SimpleXMLElement('<root/>');
$a = array('a' => 'b');
array_walk($a, array($xml,'addChild'));
return $xml->asXML();
}
}