逐行从 STDIN 读取
我想做这样的事情:
$ [mysql query that produces many lines] | php parse_STDIN.php
在文件中,我希望能够从stdin逐行解析我的数据。parse_STDIN.php
我想做这样的事情:
$ [mysql query that produces many lines] | php parse_STDIN.php
在文件中,我希望能够从stdin逐行解析我的数据。parse_STDIN.php
使用常量作为文件处理程序。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
}
你可以在这里阅读更多关于发电机的信息(或谷歌搜索教程):http://php.net/manual/en/language.generators.overview.php