2

この URL のような距離を計算するために、Google マップ API サービスにリクエストを送信しています。

$apiURL = "http://maps.google.com/maps/geo?&output=xml&key=AIzaSyCYz5Kpw4xTYVwAUibaMIUVBcaL-RfTumk&q=myAddress"

を使用して応答を取得しようとしてfile_get_contents($apiURL)いますが、ローカル システムでうまく機能しています。同じファイルをサーバーにアップロードすると、出力file_get_contents($apiURL)がnullのように見え、次のようなエラーが発生します-警告:

file_get_contents(http://maps.google.com/maps/geo?&output=xml&key=AIzaSyCYz5Kpw4xTYVwAUibaMIUVBcaL-RfTumk&q=Aerekere
%2Cbangalore%2Ckarnataka) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/stor2-wc1-dfw1/410304/hfg.mpadusa.com/web/content/components/com_helping/controllers/distance.php 
on line 108.

私はいくつかのことをチェックしました

  1. allow_url_fopen : 大丈夫です
  2. Linux サーバーへの新しい Api キー。
  3. ローカル Windows システムでは、すべての応答は問題ありません。

私の問題は何ですか。どんな助けでも本当に感謝しています。

4

1 に答える 1

1

file_get_contents は、多くの場合、Web サーバー上で無効化/ブロックされます。これは、外部コンテンツ (http 経由など) にアクセスする際のセキュリティ リスクが原因です。

Google API への呼び出しを含む外部コンテンツを取得するには、常に curl 関数を使用することをお勧めします。Web で curl の使用例をたくさん見つけることができますが、簡単に始めるには次のマニュアルを参照してください: http://au2.php.net/curl_exec

于 2012-06-16T11:35:59.760 に答える