【发布时间】:2014-05-06 13:40:43
【问题描述】:
真的是快速提问。
考虑以下代码:
//__/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 个间隔行...即 9 个正输出,每秒一个。 EG:这些一次一个到达,嘀嘀嘀嘀……
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 个大输出 1 个大等待。 9 秒后没有 EG:等待,等待等等.. 什么都没有,然后转储:
loop 000
loop 001
loop 002
loop 003
loop 004
loop 005
loop 006
loop 007
loop 008
如何更改 /var/test/cli_test_shell.php 以便输出每秒返回每一行
【问题讨论】:
-
检查我的答案,它有效;)
标签: php exec shell-exec command-line-interface passthru