日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php ob系列的函数

發(fā)布時(shí)間:2023/12/31 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php ob系列的函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<?php /** * Created by PhpStorm. * User: nj * Date: 16/11/26 * Time: 18:06 * Desc: ob系列的函數(shù),可能遇到的不多,我之前也沒(méi)注意過(guò),有用到的朋友可以看下 */ ### ob系列的函數(shù)使用場(chǎng)景 //ob的基本作用: // 1)防止在瀏覽器有輸出之后再使用setcookie()、header()或session_start()等發(fā)送頭文件的函數(shù)造成的錯(cuò)誤。其實(shí)這樣的用法少用為好,養(yǎng)成良好的代碼習(xí)慣。 // 2)捕捉對(duì)一些不可獲取的函數(shù)的輸出,比如phpinfo()會(huì)輸出一大堆的html,但是我們無(wú)法用一個(gè)變量例如$info=phpinfo();來(lái)捕捉,這時(shí)候ob就管用了。 // 3)對(duì)輸出的內(nèi)容進(jìn)行處理,例如進(jìn)行g(shù)zip壓縮,例如進(jìn)行簡(jiǎn)繁轉(zhuǎn)換,例如進(jìn)行一些字符串替換。 // 4)生成靜態(tài)文件,其實(shí)就是捕捉整頁(yè)的輸出,然后存成文件。經(jīng)常在生成html,或者整頁(yè)緩存中使用。 //對(duì)于剛才說(shuō)的第三點(diǎn)中的gzip壓縮,可能是很多人想用,卻沒(méi)有真用上的,其實(shí)稍稍修改下代碼,就可以實(shí)現(xiàn)頁(yè)面的gzip壓縮。 //使用實(shí)例 ,借用知止的例子 ob_start(); //開(kāi)啟緩沖區(qū),就是打開(kāi)瓶子 echo 'once'; ob_flush(); //得到緩沖區(qū)的內(nèi)容,并輸出,就是把瓶子里的東西倒出來(lái) echo 'twice'; $a = ob_get_contents(); //獲取緩沖區(qū)的內(nèi)容,需要顯式輸出,相當(dāng)于拿到緩沖區(qū)的東西,但是不給,等你要的時(shí)候才給你 var_dump($a); //打印,相當(dāng)于你問(wèn)我要瓶子里的東西,我就給你了 echo 'third'; $len = ob_get_length();//獲取緩沖區(qū)的數(shù)據(jù)長(zhǎng)度,相當(dāng)于數(shù)一下瓶子里還有幾顆糖,哈哈 $status = ob_get_status();//得到輸出緩沖區(qū)當(dāng)前的狀態(tài),相當(dāng)于看下瓶子有多大,已經(jīng)使用了多少容量,里邊有沒(méi)有小瓶子 var_dump($status); $level = ob_get_level(); //得到當(dāng)前緩沖區(qū)的級(jí)別,好比是這是第幾層瓶子 var_dump($level); var_dump($len); ob_end_flush(); //輸出緩沖區(qū)的內(nèi)容,并關(guān)閉緩沖區(qū) 相當(dāng)于把瓶子里的東西都倒出來(lái),并把瓶子扔掉 echo 123; $error = ob_get_contents(); var_dump($error); //這里會(huì)報(bào)錯(cuò),因?yàn)樯线吺褂昧薿b_end_flush,瓶子已經(jīng)扔掉了,再想要瓶子里的東西,不可能有了 ob_start(); echo 'test flush'; //不會(huì)被輸出 ob_clean(); //清空緩沖區(qū),相當(dāng)于把瓶子里的東西扔掉,單瓶子仍然保留 echo 'test after clean'; $con = ob_get_contents();//把瓶子里的東西保存下來(lái)了 ob_end_clean(); //清空緩沖區(qū),并關(guān)閉,相當(dāng)于把瓶子里的東西連同瓶子一起扔掉 var_dump($con);//由于東西被保存,在此可以打印出來(lái) 相當(dāng)于扔掉瓶子前,先把東西放到另一個(gè)地方了,還可以拿到 echo 'test after end_clean'; //不會(huì)被輸出 ob_flush(); //會(huì)報(bào)錯(cuò),因?yàn)樯线呉呀?jīng)使用了end關(guān)閉緩沖區(qū),相當(dāng)于瓶子被扔掉了,又想要里邊的東西倒出來(lái),已經(jīng)晚了,哈哈~~~ ## 完整的ob系列函數(shù)附在下邊,需要的朋友可以看下 //flush(); //刷新輸出緩沖 // //ob_clean(); //清空刷出緩沖區(qū) // //ob_get_clean(); //清空并關(guān)閉緩沖區(qū) // //ob_end_flush(); //輸出緩沖區(qū)內(nèi)容并刪除緩沖區(qū) // //ob_flush(); //輸出緩沖區(qū)的內(nèi)容 // //ob_get_clean(); //得到當(dāng)前緩沖區(qū)的內(nèi)容并刪除緩沖區(qū) // //ob_get_contents(); //得到緩沖區(qū)的內(nèi)容 // //ob_get_flush(); //輸出緩沖區(qū)內(nèi)容,并關(guān)閉緩沖區(qū) // //ob_get_length(); //返回緩沖區(qū)內(nèi)容的長(zhǎng)度 // //ob_get_level(); //輸出緩沖機(jī)制的嵌套級(jí)別 // //ob_get_status(); //得到所有輸出緩沖區(qū)的狀態(tài) //ob_gzhandler(); //在ob_start中用來(lái)壓縮輸出緩沖區(qū)中的內(nèi)容時(shí)的回調(diào)函數(shù) // //ob_implicit_flush(); //打開(kāi)/關(guān)閉絕對(duì)刷送 // //ob_list_handlers(); //列出所有使用中的輸出處理程序 // //ob_start(); //打開(kāi)輸出緩沖控制 // //output_add_rewrite_var(); //添加url重寫(xiě)器的值 // //output_reset_rewrite_vars(); //重設(shè)url重寫(xiě)器的值

總結(jié)

以上是生活随笔為你收集整理的php ob系列的函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。