Чтение из живого потока данных php
Я использую что-то под названием 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, потому что данные постоянно растут. Я думаю, что это может быть поток, но не уверен, что это так.
1 ответ
Для всех, кто оказался в такой же ситуации - вот ответ, который мне подходит (также может быть запущен непосредственно из командной строки):
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] и все данные будут вашими.