Я использую что-то под названием DAP (https://github.com/rapid7/dap), который помогает работать с большими файлами и выводит постоянно растущий список данных.
Например:
curl -s https://scans.io/data/rapid7/sonar.http/20141209-http.gz | zcat | head -n 10 | dap json + select vhost + lines
Этот код работает правильно и выдает 10 строк IP-адресов.
Мой вопрос заключается в том, как я могу прочитать эти данные из PHP — в действительности, когда подача данных является непрерывной / активной (она закончится в какой-то момент), как я могу обрабатывать каждую строку, которую мне дают?
Я пытался передать это, но я не получил результат. Я не хочу использовать exec, потому что данные постоянно растут. Я думаю, что это может быть поток, но не уверен, что это так.
Для всех, кто оказался в такой же ситуации, вот ответ, который мне подходит (также может быть запущен непосредственно из командной строки):
curl -s 'https://scans.io/data/rapid7/sonar.http/20141209-http.gz' | zcat | head -n 1000 | dap json + select vhost + lines | while read line ; do php /your_script/path/file.php $line ; done
Затем вытащите $ argv [1] и все данные будут вашими.
Других решений пока нет …