1

通过使用这个:

$size = ob_get_length();    
header("Content-Length: $size"); 
header('Connection: close');    
ob_end_flush(); 
ob_flush(); 
flush();  

随着ignore_user_abort(true);我通过 ajax 调用接收一个完整的状态,并让文件处理服务器端,而用户不必等待对要解析的文件内容的响应。

我想实现相同但使用 aheader("Location: target");而不是header('Connection: close');- 所以看起来一切都已完成,但文件在触发后继续解析header("Location: target");

让文件继续工作但使用 PHP 重定向用户的正确方法是什么。

顺便说一句,在连续五次投票之前,这个问题不是PHP Redirect User and Continue Process Script的重复,尽管标题似乎类似于这个问题。

4

2 回答 2

1

让文件继续工作但使用 PHP 重定向用户的正确方法是什么?

您正在描述立即退出的并行处理,您必须在 PHP 中对其进行修改:

  1. 打开父 PHP 页面
  2. 为另一个 php 文件的功能生成一个新线程(在 PHP 中,线程不存在,因此您必须使用 curl 或其他一些执行它的方法)
  3. 重定向
  4. 出口()

如果您正在触发一个您不关心响应的 ajax 请求,请以相同的方式考虑第二步。它将与您的父页面并行完成。

于 2013-02-27T00:08:48.633 回答
0

不,它不会停止执行,但您可以使用 exit 调用手动停止执行

于 2013-02-27T00:54:56.413 回答