【问题标题】:Run Command in Php without wait in browser in Windows在 PHP 中运行命令,无需在 Windows 中的浏览器中等待
【发布时间】:2018-02-28 01:45:16
【问题描述】:

我在 windows 中遵循了许多方法来使命令运行而不会中断浏览器。每当我尝试:

exec("ping 8.8.8.8") 

它使浏览器等待进程完成。

进程完成后,它会回显输出。所以我想要的是在不中断浏览器的情况下运行命令(如 ping)并将输出存储在变量中。

就我而言,我想在 ping 结束之前显示一个对话,然后再显示输出。

我试过了:

exec(start \B myexecutable.exe)

没有成功。也试过

pclose(popen(start \B myexecutable.exe))

感谢任何建议。

【问题讨论】:

  • 你可以试试php.net/manual/en/function.shell-exec.phpNote: This function is disabled when PHP is running in safe mode.
  • PHP 不能那样工作。您不能在浏览器中加载某些内容,然后从同一个 PHP 执行中发送其他内容。更明智的做法是在页面加载时发出 AJAX 请求,然后删除对话框并在收到响应时显示输出。
  • 如上所述,如果您希望页面可用并等待响应,ajax 是前进的方向。

标签: php windows command command-prompt


【解决方案1】:

可能是迟到的答案,但对我来说这适用于 Windows 和 Linux:

if (isWindows()) {
    pclose(popen("start /B php myfile.php -args", 'r'));
} else {
    exec("php myfile.php -args");
}

你需要激活php指令

ignore_user_abort(true)

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2014-09-13
    • 2013-07-23
    • 2014-09-04
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多