我已经检查了php ini文件,并且该功能已明确启用。 Json数据本身也是100%有效,所以我真的很难接受这个。应该是一个简单的任务!我试图在localhost(Xamp)环境中这样做,我不太熟悉,所以可能会影响结果?任何帮助表示赞赏。如果你愿意,可以看看网址。
$json_url = "http://api.vatlookup.eu/rates/be/";
$json = file_get_contents($json_url);
$data = json_decode($json, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";
答案 0 :(得分:0)
这可能与ini配置设置
allow_url_fopen
有关。
您的代码应该可以运行,它可以在我的环境中运行。
您可以通过运行以下命令来测试它:
php.exe -r "echo file_get_contents('http://api.vatlookup.eu/rates/be/');"
返回此内容 JSON:
{
"rates": [
{
"name": "Super Reduced",
"rates": []
},
{
"name": "Reduced",
"rates": [
6,
12
]
},
{
"name": "Standard",
"rates": [
21
]
},
{
"name": "Increased",
"rates": []
},
{
"name": "Parking",
"rates": [
12
]
}
],
"disclaimer": "Rates data is based on information published by the European Commission, updated 1st January 2017."
}
有时您需要设置user-agent和referer。我正在使用cURL提供替代方案,希望它可能对您有用:
function get_data() {
$ch = curl_init("http://api.vatlookup.eu/rates/be/");
curl_setopt($ch,CURLOPT_HTTPHEADER, [
'Referer: http://api.vatlookup.eu/rates/be/',
'User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3095.5 Safari/537.36'
]);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
示例用法:
$data = get_data();
$json = json_decode($data, true);
echo "<pre>",print_r($json,true),"</pre>";