Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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
XML格式的PHP SOAP服务器响应_Php_Soap_Soapserver - Fatal编程技术网

XML格式的PHP SOAP服务器响应

XML格式的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

我正在使用PHP创建SOAP web服务

这是我的密码

SoapServer.php

    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>&lt;RESULT&gt;&lt;complaintNo&gt;09865678&lt;/complaintNo&gt;&lt;/RESULT&gt;</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的帮助。现在开始工作了。。