私はこのようなことをしたい:
$ [mysql query that produces many lines] | php parse_STDIN.php
ファイルではparse_STDIN.php
、標準入力から 1 行ずつデータを解析できるようにしたいと考えています。
STDIN
定数をファイル ハンドラとして使用します。
while($f = fgets(STDIN)){
echo "line: $f";
}
注: STDIN の fgets は\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