页面更改时,PHP connection_aborted()不起作用

时间:2013-02-03 11:27:17

标签: php

我正在尝试提供图像,同时在每秒查看图像时添加MySQL行。

我以1024位(总图像大小为20kb)提供服务

问题在于,如果我加载显示图像的页面,然后关闭窗口或单击一个链接,将我带到另一个页面,脚本将继续运行,而不是die。< / p>

ignore_user_abort(false);
$file = 'a.jpg';
header('Content-Type: image/jpeg');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();

$conn = mysql_connect("localhost","user","pass");
mysql_select_db("mydb",$conn);

$fp=fopen($file,"rb");
$i=0;

while (!feof($fp)) {

    print(fread($fp,1024));
    sleep(1);
    mysql_query("INSERT INTO table (VIEWTIME) VALUES ('$i')");
    $i++;
    flush();
    ob_flush();
    if (connection_aborted()) {
        die();
    }
}

我正在尝试找到一个“服务器端”唯一解决方案,因为我有一些技术限制阻止我使用任何JS或任何客户端语言。

1 个答案:

答案 0 :(得分:1)

也许

ignore_user_abort(false);

应该是

ignore_user_abort(true);

Docs