Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Curl从PHP中的URL检索JSON内容时出现问题_Php_Json_Curl - Fatal编程技术网

使用Curl从PHP中的URL检索JSON内容时出现问题

使用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

我试图从中检索价格值

我在检查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.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修复了问题,正如您上一次声明所说的。亚历克西斯先发了帖子,给了我正确的网址。不过谢谢你。