我有一个包含以下代码的PHP页面,用于从用户输入的邮政编码获取纬度和经度。
但是当我尝试运行它时,我收到以下错误:
警告:在文件中禁用了file_get_contents():https://包装器 服务器配置by allow_url_fopen = 0 in 第4行/home/metsrobo/public_html/PHPPage2.php
警告: 的file_get_contents(https://maps.googleapis.com/maps/api/geocode/json?address=750341&sensor=false&key=AIzaSyDa3Jhr3c5x_2GWrPwRoMWDXrMSYl3KvOA): 无法打开流:第4行找不到合适的包装。
<?php
function getLnt($zip){
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($zip)."&sensor=false&key=AIzaSyDa3Jhr3c5x_2GWrPwRoMWDXrMSYl3KvOA";
$result_string = file_get_contents($url);
$result = json_decode($result_string, true);
return $result['results'][0]['geometry']['location'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<?php
$val = getLnt('750341');
echo "Latitude: ".$val['lat']."<br>";
echo "Longitude: ".$val['lng']."<br>";
?>
</body>
</html>
答案 0 :(得分:4)
不要在网址上使用api密钥,删除api密钥然后它会起作用,因为要获得经度和经度,你不需要api密钥。更改网址如下
https://maps.googleapis.com/maps/api/geocode/json?address=750341&sensor=false
答案 1 :(得分:0)
要使file_get_contents()
功能正常工作,首先需要启用allow_url_fopen
并将其值设置为开。
关于同样的事情,你可以尝试两件事。
创建一个.htaccess
文件并将其保存在根文件夹中(有时可能需要将其放在根目录后面一步)并将此代码粘贴到那里。
php_value allow_url_fopen On
创建php.ini
文件(对于更新服务器php5.ini
)并将其保存在根文件夹中(有时可能需要将其放在根目录后面一步)并粘贴以下内容代码那里:
allow_url_fopen = On;
希望它对你有所帮助。