php每秒输出一次

首先说到php.ini中的两个配置

output_buffering配置
•Off: 表示关闭PHP输出缓存
•On: 打开无限大的输出缓存
•4096: 打开大小为4096Byte的输出缓存(默认)

implicit_flush配置
•On: 表示每次输出(如echo,print)后自动调用flush()函数后,直接输出
•Off: 与On相反,每次输出后不会调用flush(),需要等到server buffering满了才会输出,但是我们可以用flush()函数代替它,不开启也没关系,反而更加灵活

在默认的output_buffering=4096和implicit_flush=off的情况下

已知chrome与firefox浏览器的输出缓存为1000Bytes 即只有超过1000Bytes的内容才会被输出

来看这一段程序

<?php
for ($i = 9; $i > 0; $i--) {
    print str_repeat(' ', 122);
    echo $i . '<br />';
    ob_flush();
    flush();
    sleep(1);
}
ob_end_flush();
str_repeat(' ', 122)即将空格重复122次
为什么是122呢?
我们知道一个字节占8位 1000Bytes需要125个字符 想输出出来就要126个字符
一个32位数字占4个字符
126-4=122
posted @ 2015-06-10 11:27  Bin_x  阅读(931)  评论(0编辑  收藏  举报