Php 主体的SoapServer设置属性
在PHP中,通过使用SoapServer类,我可以创建响应消息 是否可以在响应中将属性设置为body标记 PHP代码Php 主体的SoapServer设置属性,php,xml,soap,Php,Xml,Soap,在PHP中,通过使用SoapServer类,我可以创建响应消息 是否可以在响应中将属性设置为body标记 PHP代码 ini_set( "soap.wsdl_cache_enabled", "0"); $server = new SoapServer('myWsdl.wsdl'); $server->addFunction("GetDetails"); $server->handle(); 当前成果: <?xml version="1.0" encoding="UTF-8"?
ini_set( "soap.wsdl_cache_enabled", "0");
$server = new SoapServer('myWsdl.wsdl');
$server->addFunction("GetDetails");
$server->handle();
当前成果:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns1:GetDetailsResponse/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
预期成果:
<SOAP-ENV:Body Id="some_id">
当然,您可以尝试以下方法:
ini_set( "soap.wsdl_cache_enabled", "0");
$server = new SoapServer('myWsdl.wsdl');
$server->addFunction("GetDetails");
ob_start();
$server->handle();
$soap = ob_get_contents();
ob_end_clean();
$soap = str_replace("<SOAP-ENV:Body>", '<SOAP-ENV:Body Id="some_id">', $soap);
$length = strlen($soap);
header("Content-Length: ".$length);
echo $soap;
ini_集(“soap.wsdl_缓存已启用”,“0”);
$server=newsoapserver('myWsdl.wsdl');
$server->addFunction(“GetDetails”);
ob_start();
$server->handle();
$soap=ob_get_contents();
ob_end_clean();
$soap=str_replace(“,”$soap);
$length=strlen($soap);
标题(“内容长度:.$Length”);
回声肥皂;
当然,如果str_replace()
让您感觉有点脏,您可以将$soap
加载为DOMDocument
并在那里进行操作