XML格式的PHP SOAP服务器响应
我正在使用PHP创建SOAP web服务 这是我的密码 SoapServer.phpXML格式的PHP SOAP服务器响应,php,soap,soapserver,Php,Soap,Soapserver,我正在使用PHP创建SOAP web服务 这是我的密码 SoapServer.php class server{ public function RegisterComplaint($strInputXml){ $str = "<RESULT><complaintNo>09865678</complaintNo></RESULT>"; $arr['RegisterCompla
class server{
public function RegisterComplaint($strInputXml){
$str = "<RESULT><complaintNo>09865678</complaintNo></RESULT>";
$arr['RegisterComplaintResult'] = trim($str);
return $arr;
}
}
$custom_wsdl = 'custom.wsdl';
$server = new SoapServer($custom_wsdl);
$server->setClass('server');
$server->handle();
类服务器{
公共函数寄存器complaint($strInputXml){
$str=“09865678”;
$arr['RegisterComplaintResult']=trim($str);
返回$arr;
}
}
$custom_wsdl='custom.wsdl';
$server=newsoapserver($custom_wsdl);
$server->setClass('server');
$server->handle();
当我使用Wizdler(chrome扩展名)调用注册表Complaint时,我得到以下结果:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.Insurer.com/webservices/">
<SOAP-ENV:Body>
<ns1:RegisterComplaintResponse>
<ns1:RegisterComplaintResult><RESULT><complaintNo>09865678</complaintNo></RESULT></ns1:RegisterComplaintResult>
</ns1:RegisterComplaintResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
结果投诉编号09865678/投诉编号/结果
在这里,我希望得到以下格式的结果(HTML实体的特殊字符):
09865678
有人知道我需要更改哪些输出吗
我在$str变量上尝试了html\u entity\u decode()&htmlspecialchars(),但它不起作用。将解决方案作为响应。(已在评论中引用)
SoapServer
类等待一个对象作为返回值。该对象将由服务器使用所用wsdl文件中的定义自动编码。如果返回字符串,其实体将始终被编码
class Server
{
public function registerComplaint()
{
$registerComplaintResponse = new stdClass();
$registerComplaintResult = new stdClass();
$result = new \stdClass();
$result->complaintNo = '09865678';
$registerComplaintResult->RESULT = $result;
$registerComplaintResponse->RegisterComplaintResult = $registerComplaintResult;
return $registerComplaintResponse;
}
}
所有返回类型(复杂类型)的定义都在wsdl文件中定义。将解决方案定义为响应。(已在评论中引用)
SoapServer
类等待一个对象作为返回值。该对象将由服务器使用所用wsdl文件中的定义自动编码。如果返回字符串,其实体将始终被编码
class Server
{
public function registerComplaint()
{
$registerComplaintResponse = new stdClass();
$registerComplaintResult = new stdClass();
$result = new \stdClass();
$result->complaintNo = '09865678';
$registerComplaintResult->RESULT = $result;
$registerComplaintResponse->RegisterComplaintResult = $registerComplaintResult;
return $registerComplaintResponse;
}
}
所有返回类型(复杂类型)的定义都在wsdl文件中定义。这是正确的,因为
SoapServer
类等待一个对象作为返回值,该对象将在使用wsdl文件中的定义时自动编码为xml。将始终对字符串返回进行编码。只需使用物品。谢谢Marcel的帮助。它现在可以工作了。这是真的,因为SoapServer
类等待一个对象作为返回值,它将在使用wsdl文件中的定义的情况下自动编码为xml。将始终对字符串返回进行编码。只需使用物品。谢谢Marcel的帮助。现在开始工作了。。