PHP를 사용하는 SOAP 기반 웹 서비스를 사용하려고합니다. 다음은 샘플 코드입니다. 나는 retur'ed object 요소에 접근하는 법을 알고 있어야한다. 는 내가주의 새로운 PHPPHP를 사용하여 SOAP 웹 서비스에서 반환 된 객체에 액세스하는 방법
$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}";
}
는 그래서이 방법을 다음과 같은 응답
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>
)
)
을 반환 위에 내가 주석 라인을 실행할 때 나는
Notice: Undefined variable: CITY
Fatal error: Cannot access empty property
그러나 다음과 같은 예외를 얻을 수 해당 데이터가 반환되는 있지만 .NET에서 수행되는 방식으로 액세스 할 수 없습니다.
누구든지 PHP에서이 객체에 액세스하는 방법을 도와 줄 수 있습니까?
도움 주셔서 감사합니다. 그것은 분명히 작동하지만 내가 그것을 preints 개체를 인쇄하려고 할 때 ://하지만 XML로 개체를 인쇄 할 때 그것은 나에게 데이터를 보여줍니다. 지금 객체의 속성을 참조하는 방법을 알아야합니다. 다음은 코드입니다. $ obj = simplexml_load_string ($ result-> GetInfoByZIPResult-> any); echo $ obj-> asXML(); – Salman
XML 문자열을 객체로 성공적으로 변환 한 경우 $ obj-> Table-> City와 같은 간단한 속성에 액세스 할 수 있습니다. 예 - 그런 개체를 버리면 사용자 행동이 다릅니다. –
추가 도움이 필요하면 알려주세요 :) –