好!欢迎访问迷津渡口 现在时间是: 天气 °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
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
jupickuplines
 jupickuplines 约 7 小时前回复
#125
<a href="http://www.mwartsdrama.com/toronto-raptors-ovo-alternate-jersey-nfli">toronto raptors ovo alternate jersey</a> <a href="http://www.meshmotors.com/air-jordan-retro-7-royal-bl%C3%A5-skoq">air jordan retro 7 royal bl氓</a> <a href="http://www.aspenmedisys.com/long-sleeve-polyester-polo-shirts-poloh">long sleeve polyester polo shirts</a> <a href="http://www.smartiesland.com/adidas-gazelle-boost-sky-blue-grey-shoesi">adidas gazelle boost sky blue grey</a> <a href="http://www.emcetolerie.com/nike-lebron-12-elite-red-shoesk">nike lebron 12 elite red</a> <a href="http://www.lapaktoko.com/kvinners-asics-gel-lyte-5-gul-r%C3%B8d-obuvq">kvinners asics gel lyte 5 gul r酶d</a>
jupickuplines http://www.jupickuplines.com/
offleaseford
 offleaseford 约 12 小时前回复
#124
<a href="http://www.flibroactiv.com/herren-salomon-s-lab-sense-gr%C3%BCn-orange-scarpec">herren salomon s lab sense gr眉n orange</a> <a href="http://www.floozyspeak.com/nike-free-rn-wei%C3%9F-jordans-kurpesb">nike free rn wei脽 jordans</a> <a href="http://www.garajebeobide.com/nfl-larry-fitzgerald-youth-limited-red-jersey-11-arizona-cardinals-nike-home-vapor-untouchable-nflr">nfl larry fitzgerald youth limited red jersey 11 arizona cardinals nike home vapor untouchable</a> <a href="http://www.magaview.com/air-jordan-11-legend-bl%C3%A5-authentic-butyg">air jordan 11 legend bl氓 authentic</a> <a href="http://www.expandam.com/nfl-matthias-farley-mens-limited-blue-jersey-41-indianapolis-colts-nike-therma-long-sleeve-nflz">nfl matthias farley mens limited blue jersey 41 indianapolis colts nike therma long sleeve</a> <a href="http://www.getitcargo.com/colombia-22-lerma-away-soccer-country-jersey-nflx">colombia 22 lerma away soccer country jersey</a>
[url=http://www.offleaseford.com/]offleaseford[/url]
chopkinslaw
 chopkinslaw 2019-03-20 05:07回复
#123
<a href="http://www.poppiesdelray.com/dark-rouge-converse-high-tops-chaussuresl">dark rouge converse high tops</a> <a href="http://www.soundsofbuzz.com/nike-air-force-1-low-femmes-noir-chaussuresl">nike air force 1 low femmes noir</a> <a href="http://www.hozloli.com/2017-air-jordan-11-schwarz-velvet-schwarz-wei%C3%9F-schuhej">2017 air jordan 11 schwarz velvet schwarz wei脽</a> <a href="http://www.privetaustria.com/adidas-protator-1999-schuhei">adidas protator 1999</a> <a href="http://www.goodnnasty.com/nike-air-force-1-high-hvit-pris-obuvj">nike air force 1 high hvit pris</a> <a href="http://www.ankarasanal.com/nike-free-flyknit-chukka-maschio-grigio-blu-scarpel">nike free flyknit chukka maschio grigio blu</a>
chopkinslaw http://www.chopkinslaw.com/
charterfs
 charterfs 2019-03-19 08:47回复
#122
<a href="http://www.fromuser.com/nike-kyrie-1-marrone-oro-obuvc">nike kyrie 1 marrone oro</a> <a href="http://www.giorgiocarusi.com/adidas-11pro-adipure-trx-gr%C3%B8nn-hvit-scarpea">adidas 11pro adipure trx gr酶nn hvit</a> <a href="http://www.protrainingfl.com/nike-free-3.0-army-gr%C3%B8nn-gr%C3%A5-scarpee">nike free 3.0 army gr酶nn gr氓</a> <a href="http://www.tarbiatesabz.com/roshe-run-2-triple-nero-obuvc">roshe run 2 triple nero</a> <a href="http://www.crimeaon.com/nike-air-max-97-silber-bullet-2017-model-scarpea">nike air max 97 silber bullet 2017 model</a> <a href="http://www.deploygis.com/nike-magista-cleats-violet-marron-chaussuresg">nike magista cleats violet marron</a>
charterfs http://www.charterfs.com/
cherylblogs
 cherylblogs 2019-03-18 17:00回复
#121
<a href="http://www.bgaddiict.com/cam-newton-jersey-blue-youth-nflh">cam newton jersey blue youth</a> <a href="http://www.deriogolf.com/menn-asics-gel-quantum-360-grape-svart-gr%C3%A5-obuvi">menn asics gel quantum 360 grape svart gr氓</a> <a href="http://www.poluscompany.com/nike-air-huarache-brown-green-shoesj">nike air huarache brown green</a> <a href="http://www.pariswebjob.com/nike-mercurial-vapor-x-red-yellow-shoesl">nike mercurial vapor x red yellow</a> <a href="http://www.dakvideo.com/polo-in-the-city-tickets-poloh">polo in the city tickets</a> <a href="http://www.freshkeema.com/nike-kobe-10-bl%C3%A5-lagoon-skok">nike kobe 10 bl氓 lagoon</a>
cherylblogs http://www.cherylblogs.com/
jaskcsun
 jaskcsun 2019-03-18 07:36回复
#120
<a href="http://www.larrystoverjr.com/kvinders-aidas-boost-clima-chill-hvid-schuhef">kvinders aidas boost clima chill hvid</a> <a href="http://www.gokartinfo.com/air-jordan-after-game-gold-wei%C3%9F-scarpee">air jordan after game gold wei脽</a> <a href="http://www.enemythunder.com/adidas-neo-canvas-gituttio-nero-kurpesa">adidas neo canvas gituttio nero</a> <a href="http://www.lahtacentr.com/nike-air-max-flyknit-triple-sort-kurpesc">nike air max flyknit triple sort</a> <a href="http://www.intspv.com/adidas-zx-flux-torsion-hvit-obuva">adidas zx flux torsion hvit</a> <a href="http://www.itsmylogo.com/nike-roshe-gr%C3%A5-with-bl%C3%A5-schuhef">nike roshe gr氓 with bl氓</a>
jaskcsun http://www.jaskcsun.com/
vuurogen
 vuurogen 2019-03-18 06:00回复
#119
<a href="http://www.mumbaikichut.com/nike-shox-deliver-arancia-rosso-scarpek">nike shox deliver arancia rosso</a> <a href="http://www.ikmsdkravmaga.com/air-jordan-retro-11-hommesthe-verte-oranger-chaussuresh">air jordan retro 11 hommesthe verte oranger</a> <a href="http://www.themusinglens.com/prada-mens-2017-sneakers-outlet-prada073-pradah">prada mens 2017 sneakers outlet prada073</a> <a href="http://www.startagencia.com/andrew-wiggins-christmas-jersey-nfli">andrew wiggins christmas jersey</a> <a href="http://www.drjennieward.com/nike-air-yeezy-2-gr%C3%A5-gul-skol">nike air yeezy 2 gr氓 gul</a> <a href="http://www.genievres.com/ralph-lauren-pima-cotton-long-sleeve-poloh">ralph lauren pima cotton long sleeve</a>
vuurogen http://www.vuurogen.com/
wcshosting
 wcshosting 2019-03-17 05:25回复
#118
<a href="http://www.cnovas.com/hombres-asics-gel-hyper-33-rojo-zapatosk">hombres asics gel hyper 33 rojo</a> <a href="http://www.omnicitycorp.com/nike-lebron-12-low-rosado-blanco-zapatosp">nike lebron 12 low rosado blanco</a> <a href="http://www.cmcheechalk.com/face-jacket-north-womens-northfaceh">face jacket north womens</a> <a href="http://www.armandopaz.com/air-jordan-retro-9-alle-lila-schuhej">air jordan retro 9 alle lila</a> <a href="http://www.alrightdesign.com/nike-free-tr-r%C3%B8d-bl%C3%A5-skoh">nike free tr r酶d bl氓</a> <a href="http://www.parksindust.com/femmes-nike-shox-current-or-violet-chaussuresh">femmes nike shox current or violet</a>
wcshosting http://www.wcshosting.com/
anderonedream
 anderonedream 2019-03-15 14:16回复
#117
<a href="http://www.seesoshow.com/nike-hypervenom-phantom-ii-fg-flyknit-vert-noir-blanc-chaussuresl">nike hypervenom phantom ii fg flyknit vert noir blanc</a> <a href="http://www.crypolio.com/nike-cortez-nylon-hommes-outlet-orange-bleu-blanc-chaussuresl">nike cortez nylon hommes outlet orange bleu blanc</a> <a href="http://www.vtrvideo.com/protator-2000-adidas-schuhej">protator 2000 adidas</a> <a href="http://www.asoseinhalb.com/m%C3%A4nner-kevin-durant-7-rot-grau-schwarz-schuhei">m盲nner kevin durant 7 rot grau schwarz</a> <a href="http://www.handydgh.com/menn-nike-air-force-1-25th-low-svart-obuvj">menn nike air force 1 25th low svart</a> <a href="http://www.blakefanz.com/nike-air-roshe-nero-scarpel">nike air roshe nero</a>
anderonedream http://www.anderonedream.com/
fhnconference
 fhnconference 2019-03-15 02:51回复
#116
<a href="http://www.foolheartedly.com/nike-air-huarache-iii-nero-rosso-butyc">nike air huarache iii nero rosso</a> <a href="http://www.extonobgyn.com/kvinners-nike-air-max-2017-hvit-bl%C3%A5-obuvg">kvinners nike air max 2017 hvit bl氓</a> <a href="http://www.magicstockdz.com/nike-free-rn-olive-gr%C3%B8n-mile-kurpesa">nike free rn olive gr酶n mile</a> <a href="http://www.cheljm.com/nike-flyknit-racer-team-oransje-ky-kurpesf">nike flyknit racer team oransje ky</a> <a href="http://www.soldthekayway.com/ralph-lauren-jumpers-jaune-bleu-poloz">ralph lauren jumpers jaune bleu</a> <a href="http://www.medsydobrasil.com/kinder-adidas-light-up-schuhe-blau-gr%C3%BCn-scarpeb">kinder adidas light up schuhe blau gr眉n</a>
fhnconference http://www.fhnconference.com/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸