PHP 输出控制
一、前言
说到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 输出控制的更多相关文章
- cout输出控制——位数和精度控制
刷到一道需要控制输出精度和位数的题目 刚开始以为单纯使用 iomanip 函数库里的 setprecision 就可以,但 OJ 给我判了答案错误,后来一想这样输出并不能限制位数只能限制有效位数. 比 ...
- unity中Debug输出控制
1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:htt ...
- MATLAB格式化输出控制 分类: 数学 2015-07-31 23:01 3人阅读 评论(0) 收藏
MATLAB格式化输出控制 format 默认格式 format short 5字长定点数 format long 15字长定点数 format short e 5字长浮点数 format long ...
- ios中判断控制台Log输出控制,是否是iphone5,自动调整尺寸
// 控制台Log输出控制,此确保在release版本下无Log输出 #ifdef DEBUG #define CMBLOG NSLog #else #define CMBLOG ...
- CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制
第2课 CC2530的通用I/O端口输入和输出控制 广东职业技术学院 欧浩源 一.CC2530的引脚概述 CC2530微控制器采用QFN40封装,有40 个引脚.其中,有21个数字I/O端口,其中 ...
- Jmeter的log输出控制
Jmeter的log输出控制(jmeter.log) log_level.jmeter=ERROR log_level.jmeter.junit=DEBUG 在jmeter.properties中,修 ...
- 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制
第2课 CC2530的通用I/O端口输入和输出控制 小蜜蜂科教 / 广东职业技术学院 欧浩源 [通用I/O端口视频教程:https://v.qq.com/x/page/x0793aol7us.ht ...
- [Linux]屏幕输出控制
专门的术语叫做ANSI Escape sequences(ANSI Escape codes),题目并不恰当,与其说是屏幕输出控制,不如说是通过bash在兼容VT100的终端上进行输出. 主要有以下类 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...
随机推荐
- java环境下wsimport编译Wsdl
使用命令提示符进行操作:首先CD至java jdk/bin目录下.先bin目录下执行以下命令即可: -----------------------------服务需求放置的位置------------ ...
- Chrome拷贝插件的对比 zeroclipboard和clipboard插件
1.zeroclipboard插件 实现原理:Zero Clipboard 利用 Flash 进行复制,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就 ...
- angular的多个模块执行 angular里 字符串与对象的互转
1.disable : true ,禁用 2.$timeout 计时器 $interval.cancel(timer); 3.app.run(); 可以不使用控制器就开启数据,但适合$rootsco ...
- Gulp工具常用插件
gulp-uglify(js压缩) gulp-uglify安装 // npm install --save-dev gulp-uglify 已过时 npm install --save-dev jsh ...
- jQuery异步提交时显示正在加载的提示
$(element).ajaxStart(function() { loader.show(); }).ajaxStop(function() { loader.hide(); }).ajaxErro ...
- Linux,MD5
Linux 中的 md5 利用 md5 消息摘要算法可以获取任何一件事物的唯一 ID 利用 md5 消息摘要算法可以判断任何一个事物是否被改变过 一致性验证:MD5的典型应用是对一段信息(Messag ...
- IntelliJ、ReSharper 4折 加入慧都“惊喜惠”
慧都2013岁末回馈惊喜不断!著名的软件开发公司JetBrains旗下所有产品加入"惊喜惠"活动环节, JAVA IDE——IntelliJ IDEA,.NET效率工具集——ReS ...
- [UnityShader]点染队列、ZWrite和ZTest
转载自:http://www.myexception.cn/mobile/1902628.html [UnityShader]渲染队列.ZWrite和ZTest 参考链接:http://blog.cs ...
- ubuntu & sublime字体设置
ubuntu # yahei http://pan.baidu.com/share/link?shareid=972621198&uk=1243888096&fid=333591974 ...
- ansible使用9-Playbooks: Special Topics
Accelerated Mode port 5099 持续连接30min --- - hosts: all accelerate: true tasks: - name: some task comm ...