2013-11-21 90 views
1

這裏有任何人有經驗使用Json_decode爲PHP的100個流嗎?我需要看看是否有方法解析這些json流而不將它們加載到內存中,因爲它們在我的網站上超過5000個json流。例如,http://example.com/feed/json?paged=1和paged = 2,paged = 3等Json_decode,php,wordpress

我需要找到一種方法來在這些文件中搜索一個值,而不將它們加載到內存中。只需搜索這些供稿頁面,如果搜索值匹配,就可以獲得結果。

file_get_contents/json_decode帶FOREVER來完成一個簡單的搜索查詢。 多個CURL也是如此。

回答

2

這是一個非常有趣的問題,您必須使用像JSONCharInputReader這樣的流式閱讀器。

如果您檢查this example,您可以看到在「process」方法中,您會收到部分JSON,您可以對其進行解碼並檢查是否與搜索到的術語相匹配,如果不是,則可以釋放內存以取消設置變種。

或者,也許這等,php-streaming-json-parser

$stream = fopen('doc.json', 'r'); 
$listener = new YourListener(); 
try { 
    $parser = new JsonStreamingParser_Parser($stream, $listener); 
    $parser->parse(); 
} catch (Exception $e) { 
    fclose($stream); 
    throw $e; 
} 

JsonStreamingParser筆者有一個extensive post explaining how it works

+0

好吧,所以我把它運行,但我想你誤解了我的問題。問題是關於解析大量的文件..不是大數據文件。我的數據在每頁上有10條消息。但是我有大約5000個這樣的頁面。 如果我必須從這5000個頁面中搜索一個主題,則需要永久循環遍歷所有URL,然後解碼並匹配數據。 有沒有一種方法可以讓我們簡單地遍歷搜索詞的所有json URLs,如果匹配,只需將該新聞項目解碼並獲取其內容? –