如何使用fastcgi_finish_request()的示例

Dmi*_*tri 19 php fastcgi

有人可以展示如何使用fastcgi_finish_request()函数的简单示例吗?我用谷歌搜索,但只发现了一些一般提及它,有些人说他们成功使用它但我找不到一个代码的例子.

例如,我有一个PHP对象.要向浏览器发送响应,我会生成HTML,然后通过它返回getResult().然后回应结果.

像这样:

$obj = new controller();
echo $o->getResult();
Run Code Online (Sandbox Code Playgroud)

假设我想利用这种优化技术将结果发送到浏览器,然后完成一些可能很长的过程,比如连接到某些API,比如Facebook API.

我该怎么做呢?我明白,基本上我可以调用fastcgi_finish_request();然后继续执行PHP脚本.

我只需要查看示例代码,我自己也不够聪明.

Mat*_*hew 45

我明白基本上我可以调用fastcgi_finish_request(); 然后继续执行php脚本.

是的,这就是你所要做的.

$obj = new controller();
echo $o->getResult();
fastcgi_finish_request();
do_facebook_thing();
Run Code Online (Sandbox Code Playgroud)

要说服自己它正在工作,请执行以下操作:

echo "Test";
fastcgi_finish_request();
sleep(10);
Run Code Online (Sandbox Code Playgroud)

如果删除第二行,则会看到浏览器必须等待10秒.

  • 为了使你的脚本与 apache 兼容,首先添加一个 function_exists() 。 (2认同)