本当に簡単な質問です。
次のコードを検討してください。
//__/var/test/cli_test.php__
$x = 0;
while ($x < 9){
print "loop " . str_pad($x, 3, "0", STR_PAD_LEFT) . "\n";
sleep(1);
$x++;
}
php /var/test/cli_test.php
コマンド ラインに入力すると、時間ごとに 9 つの行が表示されます。つまり、1 秒に 1 つずつ、9 つの正の出力が得られます。EG: これらは一度に 1 つずつ到着し、blip blip blip...
loop 000
loop 001
loop 002
loop 003
loop 004
loop 005
loop 006
loop 007
loop 008
ここで別の命題を検討する
//__/var/test/cli_test_shell.php
print shell_exec("php /var/test/cli_test.php");
コマンド ラインに入力php /var/test/cli_test_shell.php
すると、9 秒間何も表示されず、すべてが到着します。つまり、1 つの BIG 出力 1 つの BIG 待機。何もない 9 秒後 EG: 待って、待って、待って.. 何もない THEN DUMP:
loop 000
loop 001
loop 002
loop 003
loop 004
loop 005
loop 006
loop 007
loop 008
/var/test/cli_test_shell.php
出力が毎秒各行を返すように変更するにはどうすればよいですか