Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 主体的SoapServer设置属性_Php_Xml_Soap - Fatal编程技术网

Php 主体的SoapServer设置属性

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"?

在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"?>
<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
并在那里进行操作