Ответ 1
используйте STDIN
константу в качестве обработчика файлов.
while($f = fgets(STDIN)){
echo "line: $f";
}
Примечание: fgets в STDIN читает символ \n
.
Я хочу сделать что-то вроде этого:
$ [mysql query that produces many lines] | php parse_STDIN.php
В parse_STDIN.php
файле я хочу иметь возможность анализировать мои данные по строкам из stdin.
используйте STDIN
константу в качестве обработчика файлов.
while($f = fgets(STDIN)){
echo "line: $f";
}
Примечание: fgets в STDIN читает символ \n
.
Вы также можете использовать генератор - если вы не знаете, насколько большой будет STDIN.
Требуется PHP 5 >= 5.5.0, PHP 7
Что-то по строкам:
function stdin_stream()
{
while ($line = fgets(STDIN)) {
yield $line;
}
}
foreach (stdin_stream() as $line) {
// do something with the contents coming in from STDIN
}
Здесь вы можете узнать больше об генераторах (или в Google для поиска учебников): http://php.net/manual/en/language.generators.overview.php