我无法获取特定网址的内容

时间:2019-08-20 13:45:05

标签: php

我无法获取该URL的内容(我得到空白页):https://www.euronews.com/api/watchlive.json

我一直使用此功能,从未遇到过问题:

function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_HEADER, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

$data = json_decode(file_get_contents_curl("https://www.euronews.com/api/watchlive.json"), true); $url = $data['url']; echo $url;

有什么主意吗?

编辑:(可能)由Raspbian(Raspberry)中的cURL模块引起的未知问题

2 个答案:

答案 0 :(得分:1)

您在函数响应中获得的收益超出了预期,因此json_decode失败了。您需要将CURLOPT_HEADER设置为false而不是5。

curl_setopt($ch, CURLOPT_HEADER, FALSE);

您可以通过执行操作来验证所获得的内容

$response = file_get_contents_curl("https://www.euronews.com/api/watchlive.json");
var_dump($response);
$data = json_decode($response, true); 
$url = $data['url']; 
echo $url;

答案 1 :(得分:0)

如果您想查看内容,我认为您需要echo函数。我尝试了这一点,然后得到了内容。尽管由于$referrer$header$useragent$cookie导致一些不确定的变量错误。但它运行并获得结果。这是我如何调用函数

echo file_get_contents_curl("https://www.euronews.com/api/watchlive.json");