2009-09-04 10 views

Odpowiedz

12

Oto prosty przykład, który używa curl i GET interfejs.

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

Zmienna $result zawiera XML, który wygląda jak ten

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

Gdy XML jest przetwarzany do obiektu SimpleXML, można uzyskać na poszczególnych węzłach tak:

print $xmlobj->Table->CITY; 

Jeśli chcesz mieć ochotę, możesz rzucić całość w klasę:

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

, które mogą być następnie wykorzystane w ten sposób:

$zipInfo = new GetInfoByZIP(97219); 

print $zipInfo->CITY; 
2

chciałbym użyć HTTP POST lub GET interfejsy z curl. Wygląda na to, że daje ładne czyste wyjście XML, które można przeanalizować za pomocą simpleXML.

coś jak następuje pójdzie wzdłuż drogi (ostrzeżenie, całkowicie niesprawdzone tutaj):

$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

myślę, że prosi o formacie, ale Cory”przeczytać pokazane przykłady – dusoft

Powiązane problemy