Используйте WebService с php

Встроенный строковый конструктор будет автоматически звонить obj.__str__:

''.join(map(str,list))
8
задан 4 September 2009 в 13:39
поделиться

2 ответа

Вот простой пример, который использует curl и интерфейс 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;
12
ответ дан 5 December 2019 в 12:10
поделиться

, я бы использовал интерфейсы 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);
2
ответ дан 5 December 2019 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: