使用Curl从PHP中的URL检索JSON内容时出现问题
我试图从中检索价格值 我在检查Firefox中的price元素时可以看到内容,它似乎在使用json。下面是我在php中使用curl所做的尝试使用Curl从PHP中的URL检索JSON内容时出现问题,php,json,curl,Php,Json,Curl,我试图从中检索价格值 我在检查Firefox中的price元素时可以看到内容,它似乎在使用json。下面是我在php中使用curl所做的尝试 $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_HEADER, 1, CURLOPT_URL => 'https://www.speedway.com/Pages/GasPriceSearch
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER, 1,
CURLOPT_URL => 'https://www.speedway.com/Pages/GasPriceSearch.aspx?lat=40.4172871&lng=-82.90712300000001&st=ohio'
]);
$resp = curl_exec($curl);
curl_close($curl);
var_dump(json_decode($resp));
我经常从中得到的结果是NULL
,因此我似乎没有得到任何json内容作为回报
我试着设置一个useragent,但这并没有改变任何事情。我还认为服务器可能阻止我接收我想要的东西。我试着加上
$http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
输出结果,但我得到了一个200
,所以我认为这也不是问题。如果我只是echo$resp
我会收到所有HTML内容,但json数据不在其中
我不知道我想做什么,所以我肯定我错过了什么,但不确定是什么。有什么想法吗?您提供的URL是网页本身,而不是JSON数据。该页面中的JavaScript从其他地方加载JSON数据,具体来说,从这里:
https://www.speedway.com/_layouts/Speedway/GasPrices.aspx?lat=40.4172871&lng=-82.90712300000001&st=俄亥俄州
改用它,您的代码将检索到正确的数据。您有语法错误
CURLOPT_HEADER, 1,
应该是
CURLOPT_HEADER => 1,
或者完全移除它,因为它不是必需的
但是您从中获取数据的网址无论如何都不是JSON页面。您是如何获得该URL的?但你绝对是对的。谢谢@user2951249我在web inspector中使用了Chrome的网络选项卡来查看页面发出的AJAX请求。我的坏消息。经常更改代码。但是我把它拿走了。但这并没有影响到我想做的事情。错误的URL修复了问题,正如您上一次声明所说的。亚历克西斯先发了帖子,给了我正确的网址。不过谢谢你。