1

我正在尝试在我的网站中使用 Google Places Autocomplete API,但是当我提交 url(在这种情况下,通过 php 上的 cURL)时,页面没有返回任何结果(完全空白页面)。但是只有当我从我的虚拟主机调用页面时才会发生这种情况;本地主机开发应用程序工作正常。如果我将下面的 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-NvW298");
    回声$内容;

变量内容应回显与浏览器中相同的 JSON 响应,但页面显示完全空白。有人可以帮我解决这个问题吗?

ps:我的 google api 密钥设置为“允许任何推荐人”。我尝试将 Rerefers URL site *.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 回答