gpt4 book ai didi

php exec 如何查看进度

转载 作者:搜寻专家 更新时间:2023-10-31 20:49:54 25 4
gpt4 key购买 nike

我有一个运行 2 exec 的 php 脚本。

exec(".....", $output, $return1);
echo $return1;
exec(".....", $output, $return2);
echo $return2;

这 2 个 exec 各需要 1 分钟来运行。当我运行这个脚本时,我等了 2 分钟,结果是“00”。没关系,但我想看看 $return1; 1 分钟后查看 $return2 1 分钟后。我必须使用 Ajax/js 吗?事实上,我会制作一个进度条,当第一个 exec 完成时 => 50% 当第二个 exec 完成时 => 100%

非常感谢您的帮助!


开始解决方案:

像这样:

定义.php :

setInterval(function() {
$.ajax({
type: "GET",
url: 'convert.php?file='+id_file,
cache:false,
success:function(result){
$('.content_box').html(result);

}
});

}, 3000);

转换.php :

exec(convert id_file.pdf id_file.jpg, $output, $return1);
echo $return1;
exec(convert -resize50x50 id_file.jpg id_file_thumb.jpg, $output, $return2);
echo $return2;

但它运行时没有回调而且不停!

最佳答案

是的,您必须使用 AJAX - 只需保持脚本原样,您将需要另一个脚本来报告原始脚本的进度和/或部分结果。原脚本可以使用$_SESSION来传递进度/部分结果信息,这是最简单的方案。

或者,您不仅可以使用 AJAX 请求来报告进度/部分结果,还可以像 Zar 可能提议的那样逐步运行操作。但是这种方法不太灵活;这些阶段可能会共享一些全局数据,因此如果它们都在一个脚本运行中会更好。因此,我在第 1 段中概述的方法更可行。

关于php exec 如何查看进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com