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