使用PHP exec()实时输出到文件?

时间:2016-05-01 19:03:34

标签: php gulp shell-exec

在Windows上,我使用PHP执行gulp命令。

像这样:

<?php

     set_time_limit(0);

     exec("cd /projectpath");
     $results = exec("gulp");
?>

这样可行,但我只能在命令完成后获得该命令的结果,大约需要30秒。

我想将结果写入文件 ,当它正在运行 时,所以我可以使用Ajax在一个时间间隔内轮询进度。

在正常的命令提示符中,我可以

gulp > results.txt 2>&1

并在命令运行时填充文本文件。

我已经尝试了shell_exec(),system()和passthru(),但我无法在PHP中使用它。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

为什么不按照您提议的方式致电exec()

<?php

     set_time_limit(0);

     exec("cd /projectpath");
     $results = exec("gulp > results.txt 2>&1");
?>

答案 1 :(得分:0)

使用proc_open

├── Installation path is /Users/XXXX/Documents/project/my-first-app/frontend...

├── Downloading and extracting angular-seed...

├── Installing NPM modules...

├── Installing bundled modules...

├── Installing bower components...


Status @ 65.083m | Installation Progress: [▒▒▒▒▒▒----] 64 % ┊ Installing: Frontend 
┊ Step: Installing bower components... ┊ Step Time: 61.333m ┊