我正在尝试在我的网站中使用Google商家信息自动填充API,但是当我提交网址时(在这种情况下,通过php上的cURL),该页面不会返回任何结果(完全空白页面)。但只有当我从我的网络托管中调用该页面时才会发生这种情况; localhost开发应用程序工作正常。如果我在浏览器中粘贴下面的网址,它也可以正常工作。 我的php测试页面有这样的东西:
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_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout ); $str = curl_exec( $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;
变量内容应该回显与浏览器中相同的JSON响应,但页面显示为绝对空白。 有人可以帮我解决这个问题吗?
p.s。:我的google api密钥设置为“允许任何引用”。我试图将Rerefers设为URL网站* .imoveisgo.com / *,但也不起作用。
谢谢所有!!
答案 0 :(得分: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;