在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中使用它。
有什么想法吗?
答案 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 ┊