【问题标题】:Do something while exec is being executed在执行 exec 时做某事
【发布时间】:2014-07-23 08:17:08
【问题描述】:

我编写了一个 php 脚本,该脚本调用了一个返回 html 表的 python 脚本。 PHP 脚本从 python 脚本中获取 HTML 表并将其打印到页面。 我使用 exec 运行 python 脚本并打印返回值。 这个过程需要几秒钟,我想在用户等待时向用户打印一条消息(开始时只有点)。这似乎不起作用,因为我不知道如何告诉 PHP“在 exec 完成之前做某事”。

这是我运行 python 脚本的方式(我正在使用 '> /dev/null &' 所以它不会等待它完成:

exec("c:\\windows\\system32\\cmd.exe /c c:\\Python27\\python.exe c:\\script.py".' '.$param1.' '.$param2.' '.'> /dev/null &', $return_data, $return_code);
while(!(isset($return_code)))
{
    echo '.';
}

我意识到我这样做是因为 $return_code 一开始就设置为 0。还有其他方法吗?

谢谢!

【问题讨论】:

    标签: php exec


    【解决方案1】:

    您可以查看http://es1.php.net/manual/en/class.thread.php

    我不知道它是否适用于 Windows。

    【讨论】:

      【解决方案2】:

      要获得进度指示器,您可以使用像 $_SESSION["running"] = true; 这样的会话变量,然后使用 AJAX 调用来轮询状态。

      这篇文章展示了一个可能的解决方案: php exec how to see progress

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多