PHP connection_aborted 杂项函数

  • 定义和用法

    connection_aborted - 检查客户端是否已经断开
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    connection_aborted( void )
    connection_aborted() 检查客户端是否已经断开。
  • 参数

    参数 必需的 描述
  • 返回值

    如果客户端已经断开则返回1,否则返回0。
  • 示例

    ignore_user_abort(true);
    header('Transfer-Encoding:chunked');
    ob_flush();
    flush();
    $start = microtime(true);
    $i = 0;
    // 使用此函数可将任何内容回显到浏览器。
    function vPrint($data){
            if(strlen($data))
                    echo dechex(strlen($data)), "\r\n", $data, "\r\n";
            ob_flush();
            flush();
    }
    // 将信息流传输到浏览器后,必须执行此函数。
    function endPacket(){
            echo "0\r\n\r\n";
            ob_flush();
            flush();
    }
    do{
            echo "0";
            ob_flush();
            flush();
            if(connection_aborted()){  
                    // 当脚本未执行完毕,用户关闭浏览器这里会执行
                    file_put_contents('./test.tmp', sprintf("Conn Closed\nTime spent with connection open: %01.5f sec\nLoop itterations: %s\n\n", microtime(true) - $start, $i), FILE_APPEND);
                    endPacket();
                    exit;
            }
            usleep(50000);
            vPrint("I get echo'ed every itteration (every .5 second)<br />\n");
    }while($i++ < 200);
    endPacket();
  • 相关页面

    connection_status() - 返回连接的状态位
    ignore_user_abort() - 设置客户端断开连接时是否中断脚本的执行