问一个关于客户端关闭页面后PHP执行情况的问题
是不是客户端关闭了浏览器之后,服务器就不再执行之后的PHP流程?
有没有方法使得服务器执行完之后的代码?
例如以下程序节选是用来使服务器下载某指定URL 的资源($url) ,一共重试 $retry 次。
我发现现在问题是,
假如已经正在下载了, 那么就算关闭浏览器,服务器一样把文件下载完整。
如果还在尝试连接阶段,关闭了浏览器,那么服务器就不再重试连接了。
有方法在代码里使得服务器在客户端关闭了浏览器之后,
继续执行循环里面的语句,直至到完成吗?
--------------------part of the PHP code-------------------------------------------
$try_now=0;
while (($retry > $try_now) && (!$success)){
echo "正在第 $try_now 次尝试..<BR>";
if (($fd = @fopen($url, "r")) && ($fdd = @fopen($dir."/".$file1[$i], "w"))) {
echo "连接成功!正在下载....<a href=\"./\">点击这里浏览文件列表</a><BR>";
flush();
while (!@feof($fd)) {
fwrite($fdd, @fread($fd, 1024));
}
@fclose($fd);
@fclose($fdd);
$success=TRUE;
}
$try_now ++;
if (!$success){
echo "第 $try_now 次尝试失败, 等待 $delay 秒 ...<br>";
sleep($delay);
}
flush();
}
------------------------------------end-----------------------------------------