天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Php output buffering緩存及程序緩存深入解析

下面測(cè)試ob緩存和程序緩存:
在測(cè)試前為了測(cè)試效果更明顯,我們?cè)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php.ini里先關(guān)閉ob緩存并設(shè)置明顯的錯(cuò)誤級(jí)別。
Output_buffering=off
Display_errors=on
代碼1:
復(fù)制代碼 代碼如下:
echo "php";
header("content-type:text/html;charset='utf-8'");
echo 'ok';

則會(huì)出現(xiàn)
php
Warning: Cannot modify header information - headers already sent by (output started at D:/www/apache/htdocs/test/t2.php:2) in D:/www/apache/htdocs/test/t2.php on line 3
ok
代碼2:
復(fù)制代碼 代碼如下:
ob_start();
 echo "php";
 header("content-type:text/html;charset='utf-8'");
 echo 'ok';

結(jié)果就完全正確了

原因分析:
代碼1:
php在echo ‘php'時(shí)已經(jīng)向?yàn)g覽器發(fā)送一個(gè)頭信息,
當(dāng)再出現(xiàn)
header("content-type:text/html;charset='utf-8'");
又看到一個(gè)頭信息,這時(shí)已經(jīng)打回了上面的頭信息,無(wú)法更該便出錯(cuò)了。
代碼2:開(kāi)啟了ob緩存,echo ‘php'時(shí)把要打給瀏覽器的數(shù)據(jù)先放到ob緩存里,之后又遇到一個(gè)頭信息,也放入Ob緩存,頁(yè)面結(jié)束時(shí)再按http協(xié)議到程序緩存后返回給瀏覽器。
為加深理解再看以下代碼
代碼3:
復(fù)制代碼 代碼如下:
ob_start();
echo "php";
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

會(huì)輸出


Ob_get_contents()只是取得ob緩存里的內(nèi)容而不清楚它們
Ob_get_contents()必須在ob緩存沒(méi)有清除前使用
代碼4:
復(fù)制代碼 代碼如下:
ob_start();
 echo "php";
 ob_clean();//清除緩存內(nèi)容但不關(guān)閉緩存區(qū),還能用(往里添加?xùn)|西)
 header("content-type:text/html;charset='utf-8'");
 echo 'ok';
 echo '<hr/>';
 $ob=ob_get_contents();
 echo $ob;

結(jié)果:


代碼5:
復(fù)制代碼 代碼如下:
ob_start();
echo "php";
ob_end_clean();//清空緩存內(nèi)容并關(guān)閉緩存區(qū),ob_get_contents取不到內(nèi)容
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

結(jié)果:


代碼6:
復(fù)制代碼 代碼如下:
ob_start();
echo "php";
ob_end_flush();//把緩存送到程序緩存內(nèi)并關(guān)閉ob緩存
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

代碼7:對(duì)比代碼6  與ob_flush()比較
復(fù)制代碼 代碼如下:
ob_start();
echo "php";
ob_flush();//把Ob 緩存送到程序緩存,不關(guān)閉ob緩存
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

結(jié)果:


Ob_clean()
清空ob緩存內(nèi)容但不關(guān)閉
Ob_get_flush()
沖刷出緩存到程序緩存,關(guān)閉ob緩存
代碼8:
復(fù)制代碼 代碼如下:
Ob_start();
echo 'abc';
header("content-type:text/html;charset='utf-8'");
echo 'hello';
Ob_flush();
echo 'aa';
echo ob_get_contents();
//abchelloaaaa

2.ob_flush(),flush()與程序緩存
代碼9:
復(fù)制代碼 代碼如下:
ob_start();
echo 'a';
flush();//把Ob緩存沖刷到程序緩存再?zèng)_刷到瀏覽器輸出,不影響ob緩存
echo ob_get_contents();
//aa

代碼10:
復(fù)制代碼 代碼如下:
ob_start();
echo 'a';
ob_flush();//把Ob緩存沖刷到程序緩存,ob里沒(méi)有了緩存內(nèi)容
echo "<br/>ob_con".ob_get_contents();
//a     是按正常輸出的,Ob里沒(méi)內(nèi)容

程序緩存:
代碼11:
復(fù)制代碼 代碼如下:
echo str_repeat(" ",1024);//一些版本的 Microsoft InterNET Explorer 只有當(dāng)接受到的256個(gè)字節(jié)以后才開(kāi)始顯示該頁(yè)面,所以必須發(fā)送一些額外的空格來(lái)讓這些瀏覽器顯示頁(yè)面內(nèi)容。
for($i=0;$i<5;$i++){
echo $i;
echo "<br/>";
sleep(1);
flush();
}

會(huì)一秒輸出一個(gè)數(shù)字
如果沒(méi)有flush();會(huì)把所有的輸出先暫存在程序緩存里,等完畢在整體返回給瀏覽器 這個(gè)例子說(shuō)明了程序緩存

php技術(shù)Php output buffering緩存及程序緩存深入解析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 丰满大屁俄罗斯肥女 | 美女的让男人桶爽网站 | ewp绞死vk失禁编 | 2021久久精品免费观看 | 超碰97 总站 中文字幕 | 9999精品视频| 国产精品成人免费视频99 | 印度人XXx| 打扑克床上视频不用下载免费观看 | 亚洲AV久久久噜噜噜久久 | 依恋影院在线观看 | 母乳女神春日もな | 年轻的母亲4线在线观看完整 | 色戒未删减版在线观看完整 | 欧美亚洲国产免费高清视频 | 欧美亚洲另类图片 | 国产99久久九九免费精品无码 | 久久人人玩人妻潮喷内射人人 | 国产亚洲精品福利视频 | 秋霞电影网午夜免费鲁丝片 | 日日夜夜撸 在线影院 | 父亲在线日本综艺免费观看全集 | 亚洲二区电影 | 免费精品美女久久久久久久久久 | 在线视频a | 成人免费视频无遮挡在线看 | 久久9精品区-无套内射无码 | 快播萝莉影院 | 永久午夜福利视频一区在线观看 | 快播电影网址 | 免费观看亚洲视频 | 强壮的公次次弄得我高潮韩国电影 | 抽插内射高潮呻吟V杜V | 色多多污网站在线观看 | 动漫H片在线观看播放免费 动漫H片在线播放免费高清 | 日韩精品真人荷官无码 | 色戒在线完整观看在线播放版 | 另类欧美尿交 | 入禽太深在线观看免费高清 | 久久电影精品久久99久久 | 日本高清免费一本视频在线观看 |