2017-07-07 54 views
-2

你好這個問題具有相似性this postPHP獲取谷歌財務數據

但不幸的是,這不是用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

我一開始沒有正確理解問題。 基本上,谷歌在使用它之前返回無效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" } } 
+0

我是有在 「//」 風格:)同樣的想法。如何訪問個人領域?例如,股票報價「l」 – mimi

+0

我試過這樣做echo $ arr [0] - > l;我得到錯誤未定義變量:arr,試圖獲取非對象2錯誤的屬性。 – mimi

+1

@imimi上面的例子應該是'$ json [0] - > l' –