ob_start

php ob_start()、ob_end_flush和ob_end_clean()多级缓冲

梦想与她 提交于 2019-11-30 09:13:21
ob_start() 和 ob_end_flush() 是一对很好的搭档,可以实现对输出的控制。当成一对出现理解起来就没什么问题,但是当他们两个各自出现次数增加时,就比较难理解了. <?php ob_start(); echo 'level 1<br/> '; ob_start(); echo 'level 2<br/> '; ob_start(); echo 'level 3<br/> '; ob_end_flush(); ob_end_flush(); ob_end_flush(); 很明显,结果为: level 1 level 2 level 3 当程序修改一下,修改一个ob_end_flush() 变成 ob_end_clean() 成为以下这个,你觉得结果会是怎样呢?附上这几个函数的讲解: ob_clean — 清空(擦掉)输出缓冲区 ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲 ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲 ob_flush — 冲刷出(送出)输出缓冲区中的内容 ob_start — 打开输出控制缓冲 <?php ob_start(); echo 'level 1<br/> '; ob_start(); echo 'level 2<br/> '; ob_start(); echo 'level 3<br/> ';

ob_start ob_end_clean的用法 fetch

喜夏-厌秋 提交于 2019-11-29 07:20:38
今天突然明白了, ob_start ob_end_clean 的用法 ob_start();//缓存开始 echo "lijianwei"; $str=ob_get_contents();//获取缓存内容 ob_end_clean();//清除缓存,否则会输出的,并关闭缓存 echo $str; //最后程序会输出 lijianwei 今天有点明白像 smarty 中的fetch 及thinkphp中的fetch中都是这样 ob_start(); //执行页面输出 $str=ob_get_contents(); ob_end_clean(); return $str; 来源: oschina 链接: https://my.oschina.net/u/1773287/blog/323857

php函数ob_start()、ob_end_clean()、ob_get_contents()

送分小仙女□ 提交于 2019-11-29 07:19:41
下面3个函数的用法 ob_get_contents() - 返回输出缓冲区的内容 ob_flush() - 冲刷出(送出)输出缓冲区中的内容 ob_clean() - 清空(擦掉)输出缓冲区 ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲 ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲 flush() - 刷新输出缓冲     通常是ob_flush();flush()同时一起使用 使用ob_start()把输出那同输出到缓冲区,而不是到浏览器。 然后用ob_get_contents得到缓冲区的数据。 ob_start()在服务器打开一个缓冲区来保存所有的输出。所以在任何时候使用echo ,输出都将被加入缓冲区中,直到程序运行结束或者使用ob_flush()来结束。然后在服务器中缓冲区的内容才会发送到浏览器,由浏览器来解析显示。 函数ob_end_clean 会清除缓冲区的内容,并将缓冲区关闭,但不会输出内容。 此时得用一个函数ob_get_contents()在ob_end_clean()前面来获得缓冲区的内容。 这样的话, 能将在执行ob_end_clean()前把内容保存到一个变量中,然后在ob_end_clean()后面对这个变量做操作。 例: <?php ob_start(); echo "Hello "; $out1 =