這篇文章給大家分享的是有關(guān)php設(shè)置緩沖區(qū)的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、建始網(wǎng)絡(luò)推廣、微信小程序、建始網(wǎng)絡(luò)營(yíng)銷、建始企業(yè)策劃、建始品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供建始建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.comphp緩沖區(qū)設(shè)置的方法:首先打開緩沖區(qū),代碼為【ob_start()】;然后返回內(nèi)部緩沖區(qū)的內(nèi)容,代碼為【ob_get_contents】;最后發(fā)送內(nèi)部緩沖區(qū)的內(nèi)容到瀏覽器,并且關(guān)閉輸出緩沖區(qū),代碼為【ob_end_flush】。
php緩沖區(qū)設(shè)置的方法:
一、 相關(guān)函數(shù)簡(jiǎn)介:
1、Flush:輸出緩沖區(qū)內(nèi)的內(nèi)容并且刪除緩沖區(qū)。
函數(shù)格式:flush()
說(shuō)明:這個(gè)函數(shù)經(jīng)常使用,效率很高。
2、ob_start :打開輸出緩沖區(qū)
函數(shù)格式:void ob_start(void)
說(shuō)明:當(dāng)緩沖區(qū)激活時(shí),所有來(lái)自PHP程序的非文件頭信息均不會(huì)發(fā)送,而是保存在內(nèi)部緩沖區(qū)。為了輸出緩沖區(qū)的內(nèi)容,可以使用ob_end_flush()或者使用ob_end_clean()來(lái)輸出緩沖區(qū)的內(nèi)容。
3 、ob_get_contents :返回內(nèi)部緩沖區(qū)的內(nèi)容。
使用方法:string ob_get_contents(void)
說(shuō)明:這個(gè)函數(shù)會(huì)返回當(dāng)前緩沖區(qū)中的內(nèi)容,如果輸出緩沖區(qū)沒(méi)有激活,則返回 FALSE 。
4、ob_get_length:返回內(nèi)部緩沖區(qū)的長(zhǎng)度。
使用方法:int ob_get_length(void)
說(shuō)明:這個(gè)函數(shù)會(huì)返回當(dāng)前緩沖區(qū)中的長(zhǎng)度;和ob_get_contents一樣,如果輸出緩沖區(qū)沒(méi)有激活。則返回 FALSE。
5、ob_end_flush :發(fā)送內(nèi)部緩沖區(qū)的內(nèi)容到瀏覽器,并且關(guān)閉輸出緩沖區(qū)。
使用方法:void ob_end_flush(void)
說(shuō)明:這個(gè)函數(shù)發(fā)送輸出緩沖區(qū)的內(nèi)容(如果有的話)。
6、ob_end_clean:刪除內(nèi)部緩沖區(qū)的內(nèi)容,并且關(guān)閉內(nèi)部緩沖區(qū)
使用方法:void ob_end_clean(void)
說(shuō)明:這個(gè)函數(shù)不會(huì)輸出內(nèi)部緩沖區(qū)的內(nèi)容!
7、ob_implicit_flush:打開或關(guān)閉絕對(duì)刷新
使用方法:void ob_implicit_flush ([int flag])
說(shuō)明:使用過(guò)Perl的人都知道?$|=x的意義,這個(gè)字符串可以打開/關(guān)閉緩沖區(qū),而ob_implicit_flush函數(shù)也和那個(gè)一樣,默認(rèn)為關(guān)閉緩沖區(qū),打開絕對(duì)輸出。
二、使用例子:
在一開始,筆者說(shuō)了用緩沖區(qū)控制的函數(shù)可以防止文件頭發(fā)送信息出錯(cuò),下面就是一個(gè)例子:
代碼如下:
//PHP提示符 ob_start(); //打開緩沖區(qū) echo "Hello/n"; //輸出 header('location:gotourl.php'); //把瀏覽器重定向到gotourl.php ?>
如果去掉ob_start
,PHP就會(huì)提示在文件的第4行出錯(cuò)(出錯(cuò)信息如前面所示),但是加上ob_start,就不會(huì)提示出錯(cuò),原因是當(dāng)打開了緩沖區(qū),echo后面的字符不會(huì)輸出到瀏覽器,而是保留在服務(wù)器,直到你使用flush或者ob_end_flush
才會(huì)輸出,所以并不會(huì)有任何文件頭輸出的錯(cuò)誤!
下面再給出一個(gè)很經(jīng)典的用途:
比如你用得到服務(wù)器和客戶端的設(shè)置信息,但是這個(gè)信息會(huì)因?yàn)榭蛻舳说牟煌煌?,如果想要保存phpinfo()函數(shù)的輸出怎么辦呢?在沒(méi)有緩沖區(qū)控制之前,可以說(shuō)一點(diǎn)辦法也沒(méi)有,但是有了緩沖區(qū)的控制,我們可以輕松的解決:
代碼如下:
ob_start(); //打開緩沖區(qū) phpinfo(); //使用phpinfo函數(shù) ?$info=ob_get_contents(); //得到緩沖區(qū)的內(nèi)容并且賦值給?$info ?$file=fopen('info.txt','w'); //打開文件info.txt fwrite(?$file,?$info); //寫入信息到info.txt fclose(?$file); //關(guān)閉文件info.txt ?>
感謝各位的閱讀!關(guān)于php設(shè)置緩沖區(qū)的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!