【问题标题】:how to print in php before the execution如何在执行前在php中打印
【发布时间】:2013-04-08 17:05:25
【问题描述】:

我有一个表单,提交时会调用一个 php 页面 (sample.php)

我的 php 页面执行了大量操作,大约需要 5 分钟的时间。我也在打印“已执行!”在我的 sample.php 页面上。

这个 Executed 被打印出来......只有在它执行完所有内容后(5 分钟)。

我希望我的 php 页面在完成所有处理之前打印“已执行”。

我该怎么办?

【问题讨论】:

  • 在页面开头打印
  • 它应该是正在执行或进度条之类的东西,否则你在撒谎:)
  • @Bojan 好吧..我只是在上面举个例子..
  • @user1370510 这不起作用..它仍在等待..
  • 你能发布一些示例代码吗

标签: php html flush


【解决方案1】:

已经发布了几个解决方案,它们使用ignore_user_abort()flush() 在页面交付给客户端后继续后台工作。您应该开始阅读 php 网站上connection handling 上的文档

但是,如果您要求一个稳定的解决方案,我会以“sample.php”(表单操作)将接收作业、将其添加到队列(可能是数据库表)和报告作业已添加。另一个进程在后台运行(可能是每个 cron 或其他)并自行运行作业。此外,我会创建一个类似“progress.php”的页面,可以在其中查看工作进度。响应可以是 json 或类似的东西,以便它可以轻松集成到其他页面或用作您被要求的 javascript 进度条的数据源。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2021-12-24
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多