我正在尝试制作 artisan 命令,它将执行一个无休止的脚本(更准确地说,它是一个 gulp watch 命令)。是否可以实时输出一些东西到控制台而不是等待脚本结束?exec($basedir . "test.sh", $output);foreach ($output as $item) { $this->info($item);}test.sh看起来像这样(为简洁起见缩短):echo "something"echo "something else"gulp watch由于命令实际上并未结束,因此我无法检索其中运行的两个回声。有办法吗?
1 回答
米脂
TA贡献1836条经验 获得超3个赞
我已经通过执行以下操作解决了它:
while (@ ob_end_flush()) ; // end all output buffers if any
// this section streams output to terminal
$proc = popen($basedir . "test.sh", 'r');
while (!feof($proc)) {
$this->info(fread($proc, 4096));
@ flush();
}
- 1 回答
- 0 关注
- 140 浏览
添加回答
举报
0/150
提交
取消