2013-11-21 9 views
1

Есть ли у кого-нибудь опыт использования Json_decode для 100-х потоков в Php? Мне нужно выяснить, есть ли способ проанализировать эти потоки 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, вы увидите, что в методе «процесс» вы получаете частичный 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-адреса, а затем декодировать и затем сопоставлять данные. Есть ли способ, которым мы можем просто looop через все json URLS для поискового запроса, и если совпадения, просто принесите этот элемент новостей и расшифруйте его, чтобы получить его содержимое? –