PHP获取谷歌财务数据

时间:2017-07-07 06:59:26

标签: php json

这个问题与this post有相似之处:

但不幸的是,它不适用于PHP。

header('charset=utf8');
 $rr=file_get_contents("https://www.google.com/finance/info?q=NSE:TCS");
 $json = json_decode($rr, true); 
  echo '<pre>' . print_r($json, true) . '</pre>';

这只显示空白。没有数据。

仅使用file_get_contents就可以得到这样的结果。

// [ { "id": "784961" ,"t" : "TCS" ,"e" : "NSE" ,"l" : "2,437.00" ,"l_fix" : 
 "2437.00" ,"l_cur" : "₹2,437.00" ,"s": "0" ,"ltt":"3:49PM GMT+5:30" ,"lt" : 
 "Jul 20, 3:49PM GMT+5:30" ,"lt_dts" : "2017-07-20T15:49:12Z" ,"c" : "-12.60" 
  ,"c_fix" : "-12.60" ,"cp" : "-0.51" ,"cp_fix" : "-0.51" ,"ccol" : "chr" 
  ,"pcls_fix" : "2449.6" } ]

如果json_decode不起作用,那么我可以选择以其他方式执行此操作。 我将以表格格式或每个份额显示数据。

full quote link
http://www.google.com/finance/info?infotype=infoquoteall&q=NSE:TCS"

1 个答案:

答案 0 :(得分:1)

起初我没有正确理解这个问题。 基本上,Google会返回无效的JSON,在使用它之前需要“修复”:

$rr = trim(str_replace(array("\r", "\n", "//"), '', $rr));
$json = json_decode($rr);

结果:

array(1) { [0]=> object(stdClass)#1 (16) { ["id"]=> string(6) "784961" ["t"]=> string(3) "TCS" ["e"]=> string(3) "NSE" ["l"]=> string(8) "2,437.00" ["l_fix"]=> string(7) "2437.00" ["l_cur"]=> string(15) "₹2,437.00" ["s"]=> string(1) "0" ["ltt"]=> string(15) "3:49PM GMT+5:30" ["lt"]=> string(23) "Jul 20, 3:49PM GMT+5:30" ["lt_dts"]=> string(20) "2017-07-20T15:49:12Z" ["c"]=> string(6) "-12.60" ["c_fix"]=> string(6) "-12.60" ["cp"]=> string(5) "-0.51" ["cp_fix"]=> string(5) "-0.51" ["ccol"]=> string(3) "chr" ["pcls_fix"]=> string(6) "2449.6" } }