好!欢迎访问迷津渡口 现在时间是: 天气 °C ~ °C

迷津渡口

越感到迷惑 越接近真理

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

ob_start() 和 ob_end_flush() 是一对很好的搭档,可以实现对输出的控制。当成一对出现理解起来就没什么问题,但是当他们两个各自出现次数增加时,就比较难理解了.


<?phpob_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 — 打开输出控制缓冲

<?phpob_start(); 
echo   'level 1<br/> ';
ob_start(); 
echo   'level 2<br/> ';
ob_start(); 
echo   'level 3<br/> ';
ob_end_clean();//修改处ob_end_flush();
ob_end_flush();

结果:

level 1
level 2


可能你会认为ob_end_clean()会清除与他最近的ob_start()的输出;其实这个说法不是很全面,看下面的例子

<?phpob_start(); 
echo   'level 1<br/> ';
ob_start(); 
echo   'level 2<br/> ';
ob_start(); 
echo   'level 3<br/> ';
ob_end_clean(); //第一次修改ob_end_flush();
ob_end_clean(); //第二次修改

这次,什么都没有输出来。


中间不是有一个ob_flush()吗?按理来说应该是输出  level2 的。

其实造成这样的主要原因是输出的多级缓冲机制。这个程序例子有三个ob_start(),就意味着他有3个缓冲区A,B,C,而其实php程序本身也有一个最终输出的缓冲区,我们就把他叫做F。

在这个程序中他这几个缓冲区是有一定层次的,C->B->A->F,F层次最高,是程序最终的输出缓冲,我们按上面的程序来进行讲解。


刚开始。  F:null 


ob_start();


 新建缓冲区A。  A: null -> F:null


echo   'level 1<br/> ';


程序有输出,输出进入最低的缓冲区A  A: 'level 1<br/>' -> F:null

 ob_start();

新建缓冲区B 。 B:null  ->  A: 'level 1<br/>' -> F:null


echo   'level 2<br/> ';


程序有输出,输出进入最低的缓冲区B     B:'level 2<br/> ' ->  A: 'level 1<br/>' ->F:null


ob_start();


新建缓冲区C   C:null  B:'level 2<br/> '   A: 'level 1<br/>' -> F:null


echo   'level 3<br/> ';


程序有输出,输出进入最低的缓冲区C    C:'level 3<br/> '  ->  B:'level 2<br/> '  ->  A: 'level 1<br/>' -> F:null


ob_end_clean(); //第一次修改


缓冲区C被清空并关闭。  B:'level 2<br/> '  ->  A: 'level 1<br/>' -> F:null


ob_end_flush();


缓冲区B输出到上一级的缓冲区A并关闭。   A: 'level 1<br/>level 2<br/> ' -> F:null

ob_end_clean(); //第二次修改

 缓冲区A被清空并关闭。 此时缓冲区A的东西还没真正输出到最终的F中,因此也就整个程序也就没有任何的输出了。

 ob其他的函数还有很多,但只要能懂得这些机理应该也是不难懂的。附上其余函数


  • flush — 刷新输出缓冲

  • ob_clean — 清空(擦掉)输出缓冲区

  • ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲

  • ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲

  • ob_flush — 冲刷出(送出)输出缓冲区中的内容

  • ob_get_clean — 得到当前缓冲区的内容并删除当前输出缓。

  • ob_get_contents — 返回输出缓冲区的内容

  • ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。

  • ob_get_length — 返回输出缓冲区内容的长度

  • ob_get_level — 返回输出缓冲机制的嵌套级别

  • ob_get_status — 得到所有输出缓冲区的状态

  • ob_gzhandler — 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数。ob_start callback function to gzip output buffer

  • ob_implicit_flush — 打开/关闭绝对刷送

  • ob_list_handlers — 列出所有使用中的输出处理程序。

  • ob_start — 打开输出控制缓冲

  • output_add_rewrite_var — 添加URL重写器的值(Add URL rewriter values)

  • output_reset_rewrite_vars — 重设URL重写器的值(Reset URL rewriter values)

点赞1
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
isampled
 isampled 约 15 小时前回复
#215
<a href="http://www.theislandbody.com/kvinners-asics-gel-hyper-33-mint-gr%C3%B8nn-obuvl">kvinners asics gel hyper 33 mint gr酶nn</a> <a href="http://www.zululeads.com/nike-shox-rivalry-sort-herre-trainers-skoj">nike shox rivalry sort herre trainers</a> <a href="http://www.notmyrichie.com/air-jordan-retro-17-verde-nero-scarpel">air jordan retro 17 verde nero</a> <a href="http://www.mintyschoice.com/womens-nike-roshe-run-high-blue-shoesj">womens nike roshe run high blue</a> <a href="http://www.mamapjblog.com/nike-lebron-11-alle-sort-skok">nike lebron 11 alle sort</a> <a href="http://www.pdfunicorn.com/air-jordan-retro-14-gul-mint-gr%C3%B8nn-obuvp">air jordan retro 14 gul mint gr酶nn</a>
isampled http://www.isampled.com/
dakvideo
 dakvideo 约 20 小时前回复
#214
<a href="http://www.kaliteankara.com/adidas-superstar-rojo-suede-zapatosk">adidas superstar rojo suede</a> <a href="http://www.bagsbeat.com/north-face-ladies-venture-jacket-northfaceh">north face ladies venture jacket</a> <a href="http://www.lolalolincoln.com/nike-air-max-2017-dam%C3%A4nner-gelb-rosa-schuhek">nike air max 2017 dam盲nner gelb rosa</a> <a href="http://www.buycharboleps.com/air-jordan-1-low-bl%C3%A5-skoi">air jordan 1 low bl氓</a> <a href="http://www.androidsmith.com/rouge-nike-roshe-2-chaussuresh">rouge nike roshe 2</a> <a href="http://www.oheyewear.com/chicago-cubs-new-era-mlb-jersey-hook-9fifty-snapback-cap-hatl">chicago cubs new era mlb jersey hook 9fifty snapback cap</a>
dakvideo http://www.dakvideo.com/
tvpropria
 tvpropria 2019-05-17 15:05回复
#213
<a href="http://www.ibadoracao.com/mennns-nike-zoom-pegasus-32-svart-gull-foote">mennns nike zoom pegasus 32 svart gull</a> <a href="http://www.agilitytel.com/nike-sb-dunk-high-sort-sheep-skoe">nike sb dunk high sort sheep</a> <a href="http://www.tokhasan.com/cincinnati-reds-44-adam-dunn-white-pinstripe-baseball-jersey-nflh">cincinnati reds 44 adam dunn white pinstripe baseball jersey</a> <a href="http://www.larosepalmer.com/kevin-durant-white-swingman-jersey-nfli">kevin durant white swingman jersey</a> <a href="http://www.applepietv.com/toronto-maple-leafs-jersey-nflh">toronto maple leafs jersey</a> <a href="http://www.trianglescion.com/adidas-neo-leisure-gr%C3%B8nn-himmelen-bl%C3%A5-shoesf">adidas neo leisure gr酶nn himmelen bl氓</a>
[url=http://www.tvpropria.com/]tvpropria[/url]
ndrsracing
 ndrsracing 2019-05-17 00:50回复
#212
<a href="http://www.clixorads.com/adidas-springblade-drive-rosso-in-esecuzione-scarpe-nero-scarpef">adidas springblade drive rosso in esecuzione scarpe nero</a> <a href="http://www.officelucust.com/nike-zoom-ascention-negro-jade-kurpesb">nike zoom ascention negro jade</a> <a href="http://www.ibigwig.com/nike-flyknit-lunar-ii-2-hombres-plata-blanco-zapatosk">nike flyknit lunar ii 2 hombres plata blanco</a> <a href="http://www.jaypelle.com/nike-hypervenom-verde-and-negro-astro-runningc">nike hypervenom verde and negro astro</a> <a href="http://www.sblpodcast.com/air-jordan-retro-3-azul-negro-leopard-zapatosj">air jordan retro 3 azul negro leopard</a> <a href="http://www.prmadvantage.com/hombres-asics-gel-kinsei-5-p%C3%BArpura-gris-chaussuresa">hombres asics gel kinsei 5 p煤rpura gris</a>
ndrsracing http://www.ndrsracing.com/
viptarimas
 viptarimas 2019-05-15 20:09回复
#211
<a href="http://www.truthtapes.com/nike-foamposite-lilla-gr%C3%A5-skoh">nike foamposite lilla gr氓</a> <a href="http://www.veskopetrov.com/nike-air-max-90-kpu-blanc-or-chaussuresh">nike air max 90 kpu blanc or</a> <a href="http://www.kaosmotogp.com/volcom-swingers-saloon-cap-hatl">volcom swingers saloon cap</a> <a href="http://www.doularhythms.com/nike-kobe-10-gris-noir-chaussuresh">nike kobe 10 gris noir</a> <a href="http://www.animalpainvet.com/mujeres-asics-gel-hyper-33-p%C3%BArpura-rojo-zapatosk">mujeres asics gel hyper 33 p煤rpura rojo</a> <a href="http://www.texarillo.com/nike-air-max-tailwind-6-womens-grey-sky-blue-shoesi">nike air max tailwind 6 womens grey sky blue</a>
viptarimas http://www.viptarimas.com/
poppiesdelray
 poppiesdelray 2019-05-13 10:41回复
#210
<a href="http://www.forttr.com/under-armour-mens-shadow-cap-hatj">under armour mens shadow cap</a> <a href="http://www.chopkinslaw.com/maschio-nike-zoom-train-action-nero-rosso-bianca-scarpej">maschio nike zoom train action nero rosso bianca</a> <a href="http://www.plusbolivia.com/nike-air-force-1-low-herren-schwarz-schuhei">nike air force 1 low herren schwarz</a> <a href="http://www.ahlivv.com/nike-air-max-90-sort-and-sort-skoh">nike air max 90 sort and sort</a> <a href="http://www.bybrettbarner.com/dwyane-wade-jersey-and-shorts-nfli">dwyane wade jersey and shorts</a> <a href="http://www.timowallets.com/kvinner-nike-internationalist-gr%C3%A5-rosa-oransje-obuvk">kvinner nike internationalist gr氓 rosa oransje</a>
poppiesdelray http://www.poppiesdelray.com/
lifeonfilms
 lifeonfilms 2019-05-13 05:31回复
#209
<a href="http://www.sugarforspice.com/womens-asics-gel-noosa-tri-8-red-silver-shoesl">womens asics gel noosa tri 8 red silver</a> <a href="http://www.mybancorphsa.com/oakland-raiders-mack-jersey-nfli">oakland raiders mack jersey</a> <a href="http://www.scopatore.com/air-jordan-phase-gr%C3%A5-gr%C3%B8nn-obuvk">air jordan phase gr氓 gr酶nn</a> <a href="http://www.galacticlogos.com/coach-silver-hologram-tote-a-coachh">coach silver hologram tote a</a> <a href="http://www.ispardmore.com/femminile-nike-air-max-87-sb-gituttio-rosso-scarpei">femminile nike air max 87 sb gituttio rosso</a> <a href="http://www.radioramabc.com/femminile-nike-flyknit-racer-oro-bianca-scarpeh">femminile nike flyknit racer oro bianca</a>
lifeonfilms http://www.lifeonfilms.com/
communityfm
 communityfm 2019-05-11 17:52回复
#208
<a href="http://www.bradleykountryacres.net/air-max-thea-svart-gull-schuhee">air max thea svart gull</a> <a href="http://www.buyggmotors.net/nike-kobe-9-high-rose-rouge-butyd">nike kobe 9 high rose rouge</a> <a href="http://www.calvaryneworleans.net/adidas-ultra-boost-negro-and-p%C3%BArpura-obuvc">adidas ultra boost negro and p煤rpura</a> <a href="http://www.calvarynola.net/nike-lebron-12-himmelen-bl%C3%A5-gr%C3%A5-scarpee">nike lebron 12 himmelen bl氓 gr氓</a> <a href="http://www.campaignribbons.net/adidas-springblade-guld-gr%C3%B8n-obuvd">adidas springblade guld gr酶n</a> <a href="http://www.camxl.net/nike-kd-8-kvinners-gul-himmelen-bl%C3%A5-chaussuresg">nike kd 8 kvinners gul himmelen bl氓</a>
communityfm http://www.communityfm.net/
promoldgauer
 promoldgauer 2019-05-09 08:15回复
#207
<a href="http://www.homesbyted.com/nike-herren-free-4.0-flyknit-laufen-schuh-schwarz-schuhej">nike herren free 4.0 flyknit laufen schuh schwarz</a> <a href="http://www.jserrahockey.com/nike-alle-schwarz-air-max-1-schuhei">nike alle schwarz air max 1</a> <a href="http://www.djibzphoto.com/kvinner-air-jordan-retro-3.5-gr%C3%A5-rosa-obuvj">kvinner air jordan retro 3.5 gr氓 rosa</a> <a href="http://www.vfcholdings.com/femminile-air-jordan-retro-4-bianca-grigio-viola-scarpel">femminile air jordan retro 4 bianca grigio viola</a> <a href="http://www.biancawalkden.com/hommes-adidas-springblade-drive-2.0-noirrouge-2-chaussuresh">hommes adidas springblade drive 2.0 noirrouge 2</a> <a href="http://www.sportinboston.com/nike-kd-10-floreale-scarpeh">nike kd 10 floreale</a>
promoldgauer http://www.promoldgauer.com/
htmlpast
 htmlpast 2019-05-09 04:12回复
#206
<a href="http://www.sidecisions.com/adidas-damian-lillard-orange-schwarz-scarpef">adidas damian lillard orange schwarz</a> <a href="http://www.htmlpast.com/nike-air-griffey-max-1-negro-mettodasic-plata-chaussuresb">nike air griffey max 1 negro mettodasic plata</a> <a href="http://www.djdikkethomas.com/air-jordan-5-retro-rosado-and-negro-yeezy-butya">air jordan 5 retro rosado and negro yeezy</a> <a href="http://www.dumpthatdebt.com/nike-air-max-95-l%C3%A6r-s%C3%B8lv-brun-schuhee">nike air max 95 l忙r s酶lv brun</a> <a href="http://www.syderagencys.com/adidas-ultra-boost-uncaged-hvid-guld-chaussurese">adidas ultra boost uncaged hvid guld</a> <a href="http://www.atvhdizle.com/femminile-nike-lebron-12-gituttio-nero-obuvf">femminile nike lebron 12 gituttio nero</a>
htmlpast http://www.htmlpast.com/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸