1、前言php
說到PHP輸出控制, 在不少框架裏面,好比說TP,Yii和Laraval的模版引擎裏面都有輸出控制函數的陰影,輸出控制也叫輸出緩衝,說到它的做用有如下幾點。框架
2、內容函數
一、 輸出模版ui
1 $var = ['a' => 1, 'b' => 6]; 2 $initLevel = @ob_get_level(); 3 @ob_start(); //激活輸出緩衝
4 @ob_implicit_flush(false); //關閉自動沖刷
5 try{ 6 require '../index.php'; //模版文件
7 extract($var, EXTR_OVERWRITE); //把當變量$var導入index.php文件中 即: $a = 1, $b = 6;
8 return @ob_get_clean(); 9 }catch (\Exception $e){ 10 //try...throw...catch 代碼塊
11 if(@ob_get_level() > $initLevel){ 12 if(!@ob_end_clean()){ 13 @ob_clean(); 14 } 15 } 16 throw $e; 17 }
二、實時輸出spa
1 @ob_start(); 2 $a = '輸出控制'; 3 echo $a; 4 @ob_end_flush();
三、捕獲沒有返回值的函數,好比: var_dump(),phpinfo(),echo,print_r();code
@ob_start(); phpinfo(); $a = @ob_get_contents(); echo $a; @ob_end_flush();
3、總結blog
總結: php輸出緩衝控制主要就這三點,其中1是用的最多的,而2和3不經常使用.ci