一、前言

说到PHP输出控制, 在很多框架里面,比如说TP,Yii和Laraval的模版引擎里面都有输出控制函数的阴影,输出控制也叫输出缓冲,说到它的作用有以下几点。

二、内容

1、 输出模版

 $var = ['a' => 1, 'b' => 6];
$initLevel = @ob_get_level();
@ob_start(); //激活输出缓冲
@ob_implicit_flush(false); //关闭自动冲刷
try{
require '../index.php'; //模版文件
extract($var, EXTR_OVERWRITE); //把当变量$var导入index.php文件中 即: $a = 1, $b = 6;
return @ob_get_clean();
}catch (\Exception $e){
//try...throw...catch 代码块
if(@ob_get_level() > $initLevel){
if(!@ob_end_clean()){
@ob_clean();
}
}
throw $e;
}

2、实时输出

 @ob_start();
$a = '输出控制';
echo $a;
@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不常用.

PHP 输出控制的更多相关文章

  1. cout输出控制——位数和精度控制

    刷到一道需要控制输出精度和位数的题目 刚开始以为单纯使用 iomanip 函数库里的 setprecision 就可以,但 OJ 给我判了答案错误,后来一想这样输出并不能限制位数只能限制有效位数. 比 ...

  2. unity中Debug输出控制

    1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:htt ...

  3. MATLAB格式化输出控制 分类: 数学 2015-07-31 23:01 3人阅读 评论(0) 收藏

    MATLAB格式化输出控制 format 默认格式 format short 5字长定点数 format long 15字长定点数 format short e 5字长浮点数 format long ...

  4. ios中判断控制台Log输出控制,是否是iphone5,自动调整尺寸

    // 控制台Log输出控制,此确保在release版本下无Log输出 #ifdef DEBUG #define CMBLOG          NSLog #else #define CMBLOG  ...

  5. CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制

    第2课  CC2530的通用I/O端口输入和输出控制 广东职业技术学院  欧浩源 一.CC2530的引脚概述 CC2530微控制器采用QFN40封装,有40 个引脚.其中,有21个数字I/O端口,其中 ...

  6. Jmeter的log输出控制

    Jmeter的log输出控制(jmeter.log) log_level.jmeter=ERROR log_level.jmeter.junit=DEBUG 在jmeter.properties中,修 ...

  7. 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制

    第2课  CC2530的通用I/O端口输入和输出控制 小蜜蜂科教 / 广东职业技术学院  欧浩源 [通用I/O端口视频教程:https://v.qq.com/x/page/x0793aol7us.ht ...

  8. [Linux]屏幕输出控制

    专门的术语叫做ANSI Escape sequences(ANSI Escape codes),题目并不恰当,与其说是屏幕输出控制,不如说是通过bash在兼容VT100的终端上进行输出. 主要有以下类 ...

  9. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

随机推荐

  1. ubuntu .net core The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found

    想在ubuntu下试试.net core mvc,按照官方教程走完,然后把在window 下做好的项目想在ubuntu下试试,然后输入了 git clone https://github.com/ka ...

  2. html学习笔记(一)div的透明设置

    要使得div的透明度设置,有两种方法. 第一种:使用opacity属性,单词的意思是不透明性,你可以设置它的值,范围是0到1,1为不透明,0为全透明.具体使用如下: css代码: #div01{ ba ...

  3. sass命令

    tip:sass报错解决 通过ruby编译scss时,发现编译报错,内容如下:   Conversion error: Jekyll::Converters::Scss encountered an ...

  4. BZOJ1044: [HAOI2008]木棍分割(dp 单调队列)

    题意 题目链接 Sol 比较套路的一个题. 第一问二分答案check一下 第二问设\(f[i][j]\)表示前\(i\)个数,切了\(j\)段的方案数,单调队列优化一下. 转移的时候只需要保证当前段的 ...

  5. python基础:冒泡和选择排序算法实现

    冒泡排序和选择排序   首先引用一下百度百科对于冒泡算法的定义:   冒泡排序算法的原理如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾 ...

  6. AWS ELB Sticky Session有问题?别忘了AWSELB cookie

    我们的产品中有两个Module,分别部署在独立的Linux机器上,Module 1需要向Module 2发起Http请求来获得服务.由于Module 2有多台,因此我们会在Module 2前部署一台负 ...

  7. ScrollView监听滑动到顶部和底部的方法

    不需要监听滑动位置,只需要重写ScrollView的onOverScrolled和stopNestedScroll方法就可以了 public class ReadScrollView extends ...

  8. 开源时序服务器influxdb使用

    文档 https://influxdb.com/docs/v0.9/introduction/overview.html 配置文件 /etc/opt/influxdb/influxdb.conf re ...

  9. 原生Js在各大浏览器上、火狐、ie、谷歌、360等出现的不兼容问题。

    1 document.getElementsByName("name")  在Ie低版本,360普通版本,以及火狐低版本不支持. 2 element.innerText 在低版本的 ...

  10. SINAMICS S120屏蔽报警

    通用的报警屏蔽方法: P2118 = 需要屏蔽的报警号 P2119 = 屏蔽的方式