flush控制输出模拟安装进度

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

先来一段代码
<?php
header("Content-type: text/html;charset=utf-8");
ob_end_clean();//修改部分
for ($i=10; $i>0; $i--)
{
echo $i;
flush();
sleep(1);
}
?>
这个是每秒显示一个数字.这个是基础.我们要做的是,模拟出安装中的进度.

测试一下其他的:
<?php
header("Content-type: text/html;charset=utf-8");
for ($i=1; $i<10; $i++)
{
echo $i . "1~~~<br />";
ob_flush();//修改部分
echo $i . "2~~~<br />";
flush();
echo $i . "3~~~<br />";
sleep(5);
echo $i . "4~~~<br />";
}
?>
测试一下.首先会输出1号.然后是等待5秒.然后输出剩下的

可以看到.ob_flush是个分割点.
ob_flush的作用是把缓存取出来...
sleep是暂停5秒.
flush是缓存输出

整个过程是
echo 1(此时在缓存中)
ob_flush将缓存(1)取出来准备输出
echo 2(此时在缓存中)
flush将取出来的(1)输出
echo 3(此时在缓存中)
sleep暂时停5秒
echo 4(此时在缓存中)
echo 1(此时在缓存中)
ob_flush将缓存(2341)(请注意顺序.是缓存的顺序)取出来准备输出
echo 2(此时在缓存中)
flush将取出来的(2341)输出
.................
过程继续...

看清楚了把.
实际当中做为安装程序我们可以这样:

<?php
header("Content-type: text/html;charset=utf-8");
for ($i=1; $i<10; $i++)
{
echo "具体的安装操作内容<br />";
ob_flush();//修改部分
flush();
}
?>

这样就实现了window中常用安装,可以看到流程的效果.

你可能感兴趣的:(html,PHP,.net,Blog,出版)