2009-09-04 45 views

Trả lời

12

Dưới đây là một ví dụ đơn giản trong đó sử dụng giao diện curl và 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); 

Biến $result chứa XML mà trông như thế này

<?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> 

Khi XML được phân tách thành một đối tượng SimpleXML, bạn có thể nhận tại các nút khác nhau như thế này:

print $xmlobj->Table->CITY; 

Nếu bạn muốn trở nên lạ mắt, bạn có thể ném toàn bộ nội dung vào một lớp học:

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; 
    } 
} 

mà sau đó có thể được sử dụng như thế này:

$zipInfo = new GetInfoByZIP(97219); 

print $zipInfo->CITY; 
2

tôi sẽ sử dụng HTTP POST hoặc GET giao diện với curl. Dường như nó cung cấp cho bạn một đầu ra XML sạch đẹp mà bạn có thể phân tích cú pháp với simpleXML.

giống như sau sẽ đi dọc theo con đường (cảnh báo, hoàn toàn chưa được kiểm tra ở đây):

$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); 
+0

tôi nghĩ rằng ông được hỏi về định dạng, nhưng Cory" đọc những ví dụ cho thấy – dusoft

Các vấn đề liên quan