標準入出力

標準入力から読んで、標準出力に書く (行番号付加)

lesson006.php


<?php
$fp = fopen("php://stdin", "r");
$i = 0;

while (!feof($fp))
{
printf("%06d | %s", ++$i, fgets($fp));
}

fclose($fp);
?>

実行結果

C:\>php c:\study\php\chapter003\lesson006.php < c:\study\php\chapter001\lesson00
4.php
000001 | <?php
000002 | $var1 = "Hello";
000003 | $var2 = "World";
000004 | print $var1, ", ", $var2, "!", "\n";
000005 | ?>
000006 |

何故か、1行余分に出力されてしまう...

lesson007.php


<?php
$fp = fopen("php://stdin", "r");
$i = 0;

while (!feof($fp))
{
if ($s = fgets($fp))
printf("%06d | %s", ++$i, $s);
}

fclose($fp);
?>

実行結果

C:\>php c:\study\php\chapter003\lesson007.php < c:\study\php\chapter001\lesson00
4.php
000001 | <?php
000002 | $var1 = "Hello";
000003 | $var2 = "World";
000004 | print $var1, ", ", $var2, "!", "\n";
000005 | ?>