php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法
更新時(shí)間:2007年07月21日 00:00:00 作者:
來(lái)自:http://bbs.phome.net/ShowThread/?threadid=9247&forumid=2
在PHP編程中, 我們經(jīng)常會(huì)遇到一些直接產(chǎn)生輸出的函數(shù), 如passthru(),readfile(), var_dump() 等. 但有時(shí)我們想把這些函數(shù)的輸出導(dǎo)入到文件中,或者先經(jīng)過(guò)處理再輸出, 或者把這些函數(shù)的輸出作為字符串來(lái)處理.
這時(shí)我們就要用到 Output Buffer(輸出緩沖) 函數(shù)了.
處理輸出緩沖的函數(shù)主要有這么幾個(gè):
ob_start() 開(kāi)始輸出緩沖, 這時(shí)PHP停止輸出, 在這以后的輸出都被轉(zhuǎn)到一個(gè)內(nèi)部的緩沖里.
ob_get_contents() 這個(gè)函數(shù)返回內(nèi)部緩沖的內(nèi)容. 這就等于把這些輸出都變成了字符串.
ob_get_ length() 返回內(nèi)部緩沖的長(zhǎng)度.
ob_end_flush() 結(jié)束輸出緩沖, 并輸出緩沖里的內(nèi)容. 在這以后的輸出都是正常輸出.
ob_end_clean() 結(jié)束輸出緩沖, 并扔掉緩沖里的內(nèi)容.
舉個(gè)例子, var_dump()函數(shù)輸出一個(gè)變量的結(jié)構(gòu)和內(nèi)容, 這在調(diào)試的時(shí)候很有用.
但如果變量的內(nèi)容里有 < , > 等HTML的特殊字符, 輸出到網(wǎng)頁(yè)里就看不見(jiàn)了. 怎么辦呢?
用輸出緩沖函數(shù)能很容易的解決這個(gè)問(wèn)題.
ob_start();
var_dump($var);
$out = ob_get_contents();
ob_end_clean();
這時(shí)var_dump()的輸出已經(jīng)存在 $out 里了. 你可以現(xiàn)在就輸出:
echo '<pre>' . htmlspecialchars($out) . '</pre>' ;
或者等到將來(lái), 再或者把這個(gè)字符串送到模板(Template)里再輸出.
在PHP編程中, 我們經(jīng)常會(huì)遇到一些直接產(chǎn)生輸出的函數(shù), 如passthru(),readfile(), var_dump() 等. 但有時(shí)我們想把這些函數(shù)的輸出導(dǎo)入到文件中,或者先經(jīng)過(guò)處理再輸出, 或者把這些函數(shù)的輸出作為字符串來(lái)處理.
這時(shí)我們就要用到 Output Buffer(輸出緩沖) 函數(shù)了.
處理輸出緩沖的函數(shù)主要有這么幾個(gè):
ob_start() 開(kāi)始輸出緩沖, 這時(shí)PHP停止輸出, 在這以后的輸出都被轉(zhuǎn)到一個(gè)內(nèi)部的緩沖里.
ob_get_contents() 這個(gè)函數(shù)返回內(nèi)部緩沖的內(nèi)容. 這就等于把這些輸出都變成了字符串.
ob_get_ length() 返回內(nèi)部緩沖的長(zhǎng)度.
ob_end_flush() 結(jié)束輸出緩沖, 并輸出緩沖里的內(nèi)容. 在這以后的輸出都是正常輸出.
ob_end_clean() 結(jié)束輸出緩沖, 并扔掉緩沖里的內(nèi)容.
舉個(gè)例子, var_dump()函數(shù)輸出一個(gè)變量的結(jié)構(gòu)和內(nèi)容, 這在調(diào)試的時(shí)候很有用.
但如果變量的內(nèi)容里有 < , > 等HTML的特殊字符, 輸出到網(wǎng)頁(yè)里就看不見(jiàn)了. 怎么辦呢?
用輸出緩沖函數(shù)能很容易的解決這個(gè)問(wèn)題.
ob_start();
var_dump($var);
$out = ob_get_contents();
ob_end_clean();
這時(shí)var_dump()的輸出已經(jīng)存在 $out 里了. 你可以現(xiàn)在就輸出:
echo '<pre>' . htmlspecialchars($out) . '</pre>' ;
或者等到將來(lái), 再或者把這個(gè)字符串送到模板(Template)里再輸出.
相關(guān)文章
PHP中使用循環(huán)實(shí)現(xiàn)的金字塔圖形
這篇文章主要介紹了PHP中使用循環(huán)實(shí)現(xiàn)的金字塔圖形,本文是一篇PHP的課堂筆記,完成老師的作業(yè)總結(jié)而來(lái),需要的朋友可以參考下2014-11-11php中sort函數(shù)排序知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是一篇關(guān)于php中sort函數(shù)排序知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以參考下。2021-01-01PHP實(shí)現(xiàn)時(shí)間比較和時(shí)間差計(jì)算的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)時(shí)間比較和時(shí)間差計(jì)算的方法,涉及php日期與時(shí)間的轉(zhuǎn)換、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-07-07PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法
這篇文章主要介紹了PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了SOAP擴(kuò)展的原理及實(shí)現(xiàn)WebService的相關(guān)技巧,需要的朋友可以參考下2016-04-04PHP關(guān)聯(lián)數(shù)組實(shí)現(xiàn)根據(jù)元素值刪除元素的方法
這篇文章主要介紹了PHP關(guān)聯(lián)數(shù)組實(shí)現(xiàn)根據(jù)元素值刪除元素的方法,實(shí)例分析了php差集運(yùn)算函數(shù)array_diff及數(shù)組遍歷對(duì)比刪除的兩種方法,需要的朋友可以參考下2015-06-06