gpt4 book ai didi

php - shell_exec 回显太快或太晚

转载 作者:行者123 更新时间:2023-12-04 23:15:54 33 4
gpt4 key购买 nike

所以我通读了这篇文章:https://trac.ffmpeg.org/wiki/PHP
发现了这个:

<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i input.avi output.avi >/dev/null 2>/dev/null &");
echo "Done.\n";

代码几乎可以正常工作,但唯一困扰我的是,因为 shell_exec 是在后台执行的(所以标签上始终没有加载标志)所有的 echo 都在立即执行。这意味着,在 ffmpeg 完成其任务之前正在编写“完成” echo 。

但是,当我删除“&”时,该站点也会执行它打算执行的操作,但现在它会等到 shell_exec 完成,直到它回显“正在启动 ffmpeg ...”

所以我有点想知道如何获得这样的订单:

1) 回应某事
2)执行 commad 并等待它完成。
3) 再次 echo

我是 php 的初学者,但总体上具有编程经验。请怜悯。

感谢您的时间!

最佳答案

您可能想使用 flush在你做你的 shell_exec 之前。使用它有一些注意事项,这些在 php 文档页面中有很好的解释。希望这可以帮助。

<?php
echo "Starting ffmpeg...\n\n";

ob_flush();
flush();
echo shell_exec("ffmpeg -i input.avi output.avi >/dev/null 2>/dev/null");

// a sleep could effectively be the same as your shell_exec operation
// sleep(5);

echo "Done.\n";
ob_end_flush();

关于php - shell_exec 回显太快或太晚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39500922/

33 4 0