Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
无法从url通过php解码json_Php_Json - Fatal编程技术网

无法从url通过php解码json

无法从url通过php解码json,php,json,Php,Json,我试图阅读json vi php,但无法解码 <?php $json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json"; $json = file_get_contents($json_url); $data = json_decode($json, TRUE); echo "<pre>"; print_r($data); echo

我试图阅读json vi php,但无法解码

<?php 
$json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json";
$json = file_get_contents($json_url);

$data = json_decode($json, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";

?>

您可以做的一件事是在JavaScript中使用它:

<?php 
$json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json";
$json = file_get_contents($json_url);
$json = substr($json, 30);
$json = substr($json, 0, strlen($json)-2);
$data = json_decode($json, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";

?>
另一件事是尝试删除“功能”部分:

$data = str_replace('finance_charts_json_callback( ', '', $data);
$data = str_replace(' )', '', $data);

您可以做的一件事是在JavaScript中使用它:

<?php 
$json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json";
$json = file_get_contents($json_url);
$json = substr($json, 30);
$json = substr($json, 0, strlen($json)-2);
$data = json_decode($json, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";

?>
另一件事是尝试删除“功能”部分:

$data = str_replace('finance_charts_json_callback( ', '', $data);
$data = str_replace(' )', '', $data);

此服务的响应不是有效的JSON对象。如果是JSONP,您应该查找一个以JSON形式提供输出的服务

如果他们不提供这样的服务,您可以在使用此解决方法解码数据之前对其进行操作

<?php 
$json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json"; $pageContent = file_get_contents($json_url);

$json = str_replace('finance_charts_json_callback(', '', substr($pageContent, 0, strlen($pageContent) - 1));

$data = json_decode($json, TRUE);

echo "<pre>"; print_r($data); echo "</pre>";

此服务的响应不是有效的JSON对象。如果是JSONP,您应该查找一个以JSON形式提供输出的服务

如果他们不提供这样的服务,您可以在使用此解决方法解码数据之前对其进行操作

<?php 
$json_url = "http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=5d/json"; $pageContent = file_get_contents($json_url);

$json = str_replace('finance_charts_json_callback(', '', substr($pageContent, 0, strlen($pageContent) - 1));

$data = json_decode($json, TRUE);

echo "<pre>"; print_r($data); echo "</pre>";

如果访问目标URL,您会注意到JSON值被包装在 回调方法,您可以通过如下方式对其进行修剪

下面是它的整体外观:


如果访问目标URL,您会注意到JSON值被包装在 回调方法,您可以通过如下方式对其进行修剪

下面是它的整体外观:


你也可以在上面找到解码JSONP的一般解决方案你也可以在上面找到解码JSONP的一般解决方案谢谢阿里,它成功了,你能再帮我一点忙吗,如何在每5分钟后提取$data“series”“close”的最后一个值,而不是要求为我编码,只是一个想法。让我看看数据,然后再给你回复,比如$lastOfSeries=end$data['series'];将把序列中的最后一项存储到$lastOfSeries变量中谢谢ali,它起作用了,你能再帮我一点忙吗,如何在每5分钟后获取$data“series”“close”的最后一个值,而不要求为我编码,只是一个主意。让我看看数据,然后再联系你,比如$lastOfSeries=end$data['series';将序列中的最后一项存储到$lastOfSeries变量中