2013-04-20 120 views
1

我想如何存儲酒店名稱和位置,由google提供的響應位置在PHP數組中。如果我的搜索字符串是餐館在紐約解析來自Google Place API響應的數據(Json格式)

api的響應是json格式。

我發送搜索請求腳本是:

<?php 
    if(isset($_GET['text'])) 
    { 
     if(!empty($_GET['text'])) 
     { 
      $search_text=strip_tags($_GET['text']); 

      $hostname = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=$search_text&sensor=true&key=AIzaSyDVdJtIAvhmHE7e2zoxA_Y9qWRpp6eE2o8"; 


      // read the post from PayPal system and add 'cmd' 


      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, "$hostname"); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 

      $res = curl_exec($ch); 
      curl_close($ch); 

      if(!$res) 
      { 
       // error log 
       echo'Unable to find results.'; 
      } else {  
       **// ALL output printing code goes down here** 
       //$res=json_decode($res); 
       //var_dump(json_decode($res)); 
       $obj=var_dump(json_decode($res, true)); 
       print_r($obj['"results']); 




       } 
     } else { 
      echo'<h4><font color="red">Please enter the text to search.</font></h4>'; 
      } 
    } 
?> 

好了,上面代碼的輸出是什麼JSON格式。但我需要從json輸出中檢索餐廳的名稱和它們的位置。

所以,請給我一種方法來提取確切的輸出。

+0

作爲一個小方面的說明,請嘗試file_get_contents()而不是CURL。這很容易。 例如: $ results = json_decode(file_get_contents($ hostname),TRUE); – 2013-04-20 14:00:59

回答

2

正如我所看到的結果鍵包含您需要的數據的數組。 就這樣做:

$jsonContent = json_decode($res, true); 

foreach ($jsonContent['results'] as $result) { 

    // now you have the $result array that contains the location of the place 
    // and the name ($result['formatted_address'], $result['name']) and other data. 

} 

我希望你知道什麼,從這個角度做。