Использовать WebService с php

Может ли кто-нибудь дать мне пример того, как я могу использовать следующий веб-сервис с php?

http://www.webservicex.net/uszip.asmx?op=GetInfoByZIP

Вот простой пример, который использует завиток и интерфейс GET.

$zip = 97219; $url = "http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=$zip"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); $xmlobj = simplexml_load_string($result); 

Переменная $result содержит XML, который выглядит следующим образом:

 <?xml version="1.0" encoding="utf-8"?> <NewDataSet> <Table> <CITY>Portland</CITY> <STATE>OR</STATE> <ZIP>97219</ZIP> <AREA_CODE>503</AREA_CODE> <TIME_ZONE>P</TIME_ZONE> </Table> </NewDataSet> 

После того, как XML обрабатывается в объекте SimpleXML, вы можете получить следующие узлы:

 print $xmlobj->Table->CITY; 

Если вы хотите получить фантазию, вы можете бросить все это в класс:

 class GetInfoByZIP { public $zip; public $xmlobj; public function __construct($zip='') { if($zip) { $this->zip = $zip; $this->load(); } } public function load() { if($this->zip) { $url = "http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip={$this->zip}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); $this->xmlobj = simplexml_load_string($result); } } public function __get($name) { return $this->xmlobj->Table->$name; } } 

который затем можно использовать следующим образом:

 $zipInfo = new GetInfoByZIP(97219); print $zipInfo->CITY; 

Я бы использовал HTTP POST или GET интерфейсы с curl . Похоже, что он дает вам хороший чистый XML-вывод, который вы могли бы проанализировать с помощью simpleXML .

Что-то вроде следующего идет по пути (предупреждение, совершенно непроверенное здесь):

 $ch = curl_init('http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=string'); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); $xml = curl_exec($ch); curl_close($ch); $parsed = new SimpleXMLElement($xml); print_r($parsed);