PHP 输出控制
说到PHP控制, 在很多框架里面,比如说TP,Yii和Laraval的模版引擎里面都有输出控制函数的阴影,输出控制也叫输出缓冲,说到它的作用有以下几点:
1. 输出模版
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 }
2.实时输出
1 @ob_start(); 2 $a = '输出控制'; 3 echo $a; 4 @ob_end_flush();
3.捕获没有返回值的函数,比如: var_dump(),phpinfo(),echo,print_r();
@ob_start(); phpinfo(); $a = @ob_get_contents(); echo $a; @ob_end_flush();
总结: php输出缓冲控制主要就这三点,其中1是用的最多的,而2和3不常用.