簡體   English   中英

如何使用PHP從SOAP Web服務訪問返回的對象

[英]How to access returned object from SOAP webservice using PHP

我正在嘗試使用基於ui的PHP SOAP Web服務。 以下是示例代碼。 我需要知道/學習如何訪問retur'ed對象元素? 請注意,我是PHP新手

    $url = 'http://www.webservicex.net/uszip.asmx?WSDL';
    $soap = new SoapClient($url, array(
        "trace"      => 1,      // enable trace to view what is happening
        "exceptions" => 0,      // disable exceptions
        "cache_wsdl" => 0) );
    try {
        $result = $soap->GetInfoByZIP(array('USZip' => '97219'));

        echo($result->$CITY);
        //print_r( $soap->GetInfoByZIP(array("USZip" => "97219")));
    } catch (SoapFault $e) {
        echo "Error: {$e->faultstring}";
    }

我得到以下異常

Notice: Undefined variable: CITY 

Fatal error: Cannot access empty property 

但是,當我執行上面的注釋行時,返回以下響應

 stdClass Object
(
    [GetInfoByZIPResult] => stdClass Object
        (
            [any] => <NewDataSet xmlns=""><Table><CITY>Portland</CITY><STATE>OR</STATE><ZIP>97219</ZIP><AREA_CODE>503</AREA_CODE><TIME_ZONE>P</TIME_ZONE></Table></NewDataSet>
        )

)

因此,這意味着將返回數據,但我無法像在.NET中那樣訪問數據

誰能幫助我如何在PHP中訪問此對象,為什么?

首先,您正在使用$ CITY變量來訪問$ result屬性,但尚未定義它。

因此,如果要在“結果”對象中獲取“ CITY”屬性,則應通過“ $ result-> City”來實現。

根據結果​​,您得到-這是一個xml字符串,而不是對象。 如果要訪問字符串,請按照以下方式進行操作:

$result->GetInfoByZIPResult->any

您可以使用DomDocument或simplexml lib加載字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM