1

サイトでGooglePlacesAutocomplete APIを使用しようとしていますが、URLを送信すると(この場合、phpのcURLを介して)、ページに結果が返されません(完全に空白のページ)。しかし、それは私が私のウェブホスティングからページを呼び出すときにのみ起こります。localhostdevアプリケーションは正常に動作します。以下のURLをブラウザに貼り付けると、問題なく動作します。私のphpテストページには次のようなものがあります:

    関数curl_file($ url、$ timeout = 0){
        $ ch = curl_init();
        curl_setopt($ ch、CURLOPT_URL、$ url);
        // curl_setopt($ ch、CURLOPT_HEADER、1);
        curl_setopt($ ch、CURLOPT_RETURNTRANSFER、1);
        curl_setopt($ ch、CURLOPT_CONNECTTIMEOUT、$ timeout);
        $ str = curl_exec($ ch);
        curl_close($ ch);
        $strを返します。
    }

    $ content = curl_file( "https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW
    エコー$コンテンツ;

変数のコンテンツはブラウザと同じJSON応答をエコーする必要がありますが、ページは完全に空白で表示されます。誰かがこれについて私を助けることができますか?

ps:私のグーグルAPIキーは「すべてのリファラーが許可されています」に設定されています。RereferstheURLサイト*.imoveisgo.com/ *を付けようとしましたが、うまくいきません。

皆さんありがとう!!

4

1 に答える 1

0

これはcURLのSSLの問題だと思います。このコードを試してください:

function curl_file($url, $timeout=0){
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  //curl_setopt ($ch, CURLOPT_HEADER, 1);
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
  $str = curl_exec( $ch );
  if(curl_errno($ch)) {
    echo "Err#".curl_error($ch);
    echo curl_error($ch);
  }
  curl_close( $ch );
  return $str;
} 

$content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298");
echo $content;
于 2012-11-29T17:36:08.853 に答える