2012-01-05 11 views
0

GoogleプレイスAPIからデータを取得するためにPHPとcURLを使用しようとしていますが、cURLが「ホストに接続できませんでした" GoogleプレイスのリクエストURLをブラウザに貼り付けるとうまくいきます。 file_get_contentsも機能しませんでした。ここに私のコードは次のとおりです。GoogleプレイスAPIとPHP/cURLでホストエラーに接続できませんでした

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    //curl_setopt($ch, CURLOPT_POST, 1); 
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldString); 
    $result = curl_exec ($ch); 
    if (curl_errno($ch)) { 
      return curl_error($ch); 
    } else { 
    curl_close($ch); 
    } 
    return $result; 

私が要求してるURLはhttps://maps.googleapis.com/maps/api/place/search/json?key=xxx&location=27.916766641249062,-82.08984375&radius=50000&sensor=true&types=bar%7Cnight_clubです。セキュリティ上の目的でAPIキーを削除しました。

+0

私はPHPの人ではありませんが、自動的にリクエストをURLエンコードしますか? –

+0

私はリクエストをURLエンコードしようとしましたが、何も変更していません – user1132322

答えて

0

私は実際にfile_get_contents()を使用して、可能であればとてもシンプルでエレガントです。あなたはこのような配列表示されるはずです

通常私は

<?php 
$json = (array) json_decode(file_get_contents("https://maps.googleapis.com/maps/api/place/search/json?key=xxx&location=27.916766641249062,-82.08984375&radius=50000&sensor=true&types=bar%7Cnight_club.")); 

var_dump($json); 
?> 

その後ん:明らか

array(3) { 
    ["html_attributions"]=> 
    array(0) { 
    } 
    ["results"]=> 
    array(0) { 
    } 
    ["status"]=> 
    string(14) "REQUEST_DENIED" 
} 

を、私は正しいAPIキーを持っていない:)それが役に立つことを願っています。

+0

file_get_contentsは私に空白のページを与え、fsockopenを使うと接続がタイムアウトします – user1132322

関連する問題