关于sleep每隔1s输出

//详细解释链接

PHP FLUSH SLEEP 输出缓存控制详解 - (BACH) - 博客园



    /**
     * 实时输出打印
     * @param type $msg         需要打印的消息
     * @param type $datetime    是否打印时间
     * @param type $sleep       是否需要输出间歇时间
     * @param type $size        缓冲区大小 默认 4096
     * @param type $br          打印BR个数 默认2
     */
    function output($msg = "This is test.", $datetime = true, $sleep = true, $size = 4096, $br = 2) {
        if ($datetime) {
            echo date("Y-m-d H:i:s");
        }
        if (empty($size)) {
            $size = ini_get('output_buffering');
        }
        if (is_array($msg)) {
            var_dump($msg);
        } else {
            echo "  $msg";
        }
        for ($i = 0; $i < $br; $i++) {
            echo "
"; } echo str_pad(' ', $size); //使缓冲区溢出 复制输出4096个字节 ob_flush(); //释放php内置缓存 flush(); //输出送出的缓冲内容 到浏览器 if ($sleep === true) { sleep(1); } else if (is_numeric($sleep) && $sleep > 0) { sleep($sleep); } else { //不休息 } }

/**

3s后输出

*/

for ($i = 0; $i < 3; $i++) {
    echo time() . date("Y-m-d H:i:s") . "

";
    sleep(1);
}


/**

每隔1s输出

*/

for ($i = 0; $i < 3; $i++) {

/**

在php中有个输出缓存控制,具体怎么解释的请百度一下

我这里php.ini  中 output_buffering=4096;

请自行测试改正

关于 关闭 缓冲区,output_buffering=off 

*/

    echo str_pad('', 4096); //使缓冲区溢出 复制输出4096个字节
    echo time() . date("Y-m-d H:i:s") . "

";     flush(); //输出送出的缓冲内容     sleep(1); }

在Nginx中,有个Nginx 缓冲区,可能会与php本身设置有冲突,所以存在在Nginx中无法实时输出的问题

你可能感兴趣的:(PHP,sleep(),PHP)