这个问题与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"
答案 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" } }