如何使用 php 管道 rake 输出?

发布于 2024-11-15 16:35:00 字数 325 浏览 1 评论 0原文

我正在构建一个 RAKEFILE,我想在执行时在 php 生成的页面上显示输出。

我尝试使用 system() 因为 PHP 文档提到了这一点:

如果 PHP 作为服务器模块运行,则 system() 调用还会尝试在每行输出后自动刷新 Web 服务器的输出缓冲区。

这似乎适用于多个 shell 命令,但当我执行 rake 时,我只得到第一行:

(in /Users/path/to/proj)

有什么想法吗?

干杯!

I'm building a RAKEFILE and I want to display the output on a php generated page as it gets executed.

I tried using system() since the PHP docs mention this:

The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.

This seems to work with multiple shell comands but when I execute rake I only get the first line:

(in /Users/path/to/proj)

Any ideas?

Cheers!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情定在深秋 2024-11-22 16:35:00

尝试使用 exec() 函数

   exec($command, $output); 

$output 是一个数组

//retrieved data
for($out = '',$x = 0,$len = count($output); $x < $len; $x++) {
      $out .= $output[$x] . "\r\n";
}

或简单的:

$out = join("\r\n", $output); 

Try use exec() function

   exec($command, $output); 

$output is an array

//retrieved data
for($out = '',$x = 0,$len = count($output); $x < $len; $x++) {
      $out .= $output[$x] . "\r\n";
}

or simple:

$out = join("\r\n", $output); 
终止放荡 2024-11-22 16:35:00

system() 调用还会尝试在 > > 之后自动刷新 Web 服务器的输出缓冲区。如果 PHP 作为服务器模块运行,则输出的每一行。

这意味着您只能从返回值中获得最后一行输出。 system() 手册页中的示例显示了这一点,并建议使用 passthru() 来获取原始输出。不过我通常使用 exec() 。

The system() call also tries to automatically flush the web server's output buffer after > each line of output if PHP is running as a server module.

This means you would only get the last line of output from the return value. The example in the system() manual page shows that and it suggests to use passthru() to get raw output. I usually use exec() though.

救星 2024-11-22 16:35:00

原来这两个函数system() & exec() 确实有效。但不考虑使用 --verbose 时生成的 rake 输出。这就是为什么我很困惑。如果有人对区别有更广泛的了解,请分享:)

Turs out both functions system() & exec() actually work. The generated rake output when using --verbose isn't taken into consideration though. That's why I was confused. If anyone has more extensive knowledge on the distinction, do share :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文