天天看點

PHP中的ob_start() 的使用

1.在PHP程式設計中, 我們經常會遇到一些直接産生輸出的函數, 如passthru(),readfile(), var_dump() 等.

但有時我們想把這些函數的輸出導入到檔案中,或者先經過處理再輸出, 或者把這些函數的輸出作為字元串來處理.

  這時我們就要用到 Output

Buffer(輸出緩沖) 函數了.

處理輸出緩沖的函數主要有這麼幾個:

ob_start() 開始輸出緩沖, 這時PHP停止輸出,

在這以後的輸出都被轉到一個内部的緩沖裡.

ob_get_contents() 這個函數傳回内部緩沖的内容.

這就等于把這些輸出都變成了字元串.

ob_get_ length() 傳回内部緩沖的長度.

ob_end_flush()

結束輸出緩沖, 并輸出緩沖裡的内容. 在這以後的輸出都是正常輸出.

ob_end_clean() 結束輸出緩沖, 并扔掉緩沖裡的内容.

舉個例子:

define(‘ob_start‘,true);

if(ob_start){

  echo ‘<p>start is

ok</p>‘.‘<br>‘;

}

echo

‘sunzhiyan‘.‘<br>‘;

//var_dump($var);

$out =

ob_get_contents();

ob_end_clean();

ob_end_flush();

echo ‘<pre>‘.$out.‘</pre>‘ ;

這裡我們隻有通過最後的輸出$out,才能能到前面的輸出結果

start is ok