我有一个json脚本,我需要使用CURL和json_decode转换为PHP数组。 CURL位通过函数完成。我的$ getcontent有数据,但是一旦我通过json_decode,$ content就是空的。
它只返回一个空字符串。
PHP
$url='http://lab.volzy.dk/index.json';
$getcontent = get_data($url);
$content = json_decode($getcontent, true);
if(empty($getcontent)) {
echo "getcontent empty";
} else {
echo "getcontent not empty";
}
if(empty($content)) {
echo "content empty";
} else {
echo "content not empty";
}
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
如果我从URL复制数据并将其放在单引号内,我会收到数据,但是尝试从URL中获取数据我什么都没得到。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
你的脚本运行正常,可能是$ timeout吗?尝试将其设置得更高(15)。
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url='http://lab.volzy.dk/index.json';
$getcontent = get_data($url);
$content = json_decode($getcontent, true);
var_dump($content);
我得到了一个不错的json对象。
答案 1 :(得分:0)
你的http请求似乎并不特别,所以不需要curl,尝试用file_get_contents('http://lab.volzy.dk/index.json')替换你的get_data();