PHP SoapClient __getLastResponse - 如何只显示一个参数

时间:2014-09-26 14:57:00

标签: php soap-client

当我跑步时

  

echo $ client-> __ getLastResponse();

结果是:

0 123 simple error

但是

  

的var_dump($客户端 - > __ getLastResponse()获得);

结果是:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header/><soap:Body><p1:FunctionResponse xmlns:p1="http://www.domain.com"><p1:TArrayFunctionResult><p1:Status>0</p1:Status><p1:ErrorCode>123</p1:ErrorCode><p1:ErrorMessage>simple error</p1:ErrorMessage></p1:TArrayFunctionResult></p1:CreateFunctionResponse></soap:Body></soap:Envelope>

只需要显示 ErrorMessage 参数 &#34;简单错误&#34;

1 个答案:

答案 0 :(得分:1)

作为 非常 脏黑客,您可以使用正则表达式。

<?php

$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header/><soap:Body><p1:FunctionResponse xmlns:p1="http://www.domain.com"><p1:TArrayFunctionResult><p1:Status>0</p1:Status><p1:ErrorCode>123</p1:ErrorCode><p1:ErrorMessage>simple error</p1:ErrorMessage></p1:TArrayFunctionResult></p1:CreateFunctionResponse></soap:Body></soap:Envelope>
XML;

preg_match("/\<p1:ErrorMessage\>(.*)\<\/p1:ErrorMessage\>/", $xml, $arrMatches);

echo $arrMatches[1];

https://eval.in/199000