> 백엔드 개발 > PHP 튜토리얼 > ob_start()求教解决思路

ob_start()求教解决思路

WBOY
풀어 주다: 2016-06-13 10:36:59
원래의
998명이 탐색했습니다.

ob_start()求教
ob_start(); //-----------------------------1

//for($s=0;$s
//ob_end_clean(); //----------------------------------2

for($var=0;$var echo $var;
print str_repeat("", 4096); 
ob_flush();//--------------------------3
flush(); //--------------------------4
  sleep(1); //--------------------------5
}
?>
一个测试缓冲区的例子,问题来了,当使用ob_start()函数时候,【3】的作用是释放缓冲区的内容,【4】将不再缓冲区的内容发送到页面,【5】使得每秒发送一次,但是为什么还会等10秒后一次将内容全发送过去.

查了很多文章,很多都说使用【2】处的方法,注释掉【1】【3】,但是这样就关闭了缓冲区,

网上关于Php的说法有称内部缓冲区的,也有叫缓冲区的,不知道是不是一个东西。
还有Php.ini文件中的 output_buffering他的缓冲区是不是就是ob_start()开启的缓冲区?

------解决方案--------------------
ob_flush不是很好用,请参考官方文档。
http://il.php.net/manual/en/function.ob-flush.php

some problems with ob_flush() and flush() could be resolved by defining content type header :
header( 'Content-type: text/html; charset=utf-8' );

so working code looks like this:
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...
';
for( $i = 0 ; $i {
echo $i . '
';
flush();
ob_flush();
sleep(1);
}
echo 'End ...
';
?>

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿