`
wangminshe89
  • 浏览: 701759 次
文章分类
社区版块
存档分类
最新评论

outputbuffer输出缓冲函数的妙用

 
阅读更多
在PHP编程中, 我们经常会遇到一些直接产生输出的函数, 如passthru(),readfile(), var_dump() 等. 但有时我们想把这些函数的输出导入到文件中,或者先经过处理再输出, 或者把这些函数的输出作为字符串来处理.
这时我们就要用到 Output Buffer(输出缓冲) 函数了.

处理输出缓冲的函数主要有这么几个:
ob_start() 开始输出缓冲, 这时PHP停止输出, 在这以后的输出都被转到一个内部的缓冲里.

ob_get_contents() 这个函数返回内部缓冲的内容. 这就等于把这些输出都变成了字符串.

ob_get_ length() 返回内部缓冲的长度.

ob_end_flush() 结束输出缓冲, 并输出缓冲里的内容. 在这以后的输出都是正常输出.

ob_end_clean() 结束输出缓冲, 并扔掉缓冲里的内容.

举个例子, var_dump()函数输出一个变量的结构和内容, 这在调试的时候很有用.
但如果变量的内容里有 < , > 等HTML的特殊字符, 输出到网页里就看不见了. 怎么办呢?
用输出缓冲函数能很容易的解决这个问题.

ob_start();
var_dump($var);
$out = ob_get_contents();
ob_end_clean();


这时var_dump()的输出已经存在 $out 里了. 你可以现在就输出:

echo '<pre>' . htmlspecialchars($out) . '</pre>' ;

或者等到将来, 再或者把这个字符串送到模板(Template)里再输出.

分享到:
评论

相关推荐

    php中ob(Output Buffer 输出缓冲)函数使用方法

    #### 二、主要的输出缓冲函数 处理输出缓冲的主要函数包括: 1. **ob_start()**:启动输出缓冲。调用此函数后,PHP会将所有后续的输出重定向到一个内部缓冲区中,而不再直接发送到客户端。 2. **ob_get_contents()...

    输出缓冲器共15页.pdf-文档整理可打印.zip

    在计算机硬件和操作系统层面,输出缓冲器(Output Buffer)是一种存储区域,用于暂时存放待发送的数据,以优化数据传输过程。这个主题通常涉及计算机架构、操作系统、网络通信以及编程等多个IT领域的知识。 在...

    php 输出缓冲 Output Control用法实例详解

    本文实例讲述了php 输出缓冲 ...而php的输出缓冲也一样,当我们通过echo,print等函数输出时,这些内容首先会保存在output buffer中,php脚本执行完毕或者强制执行缓冲输出操作,内容才会在浏览器上显示。 现在的php版

    AE二次开发缓冲区分析详细步骤

    文档还提到了缓冲区分析的一些关键概念,比如缓冲距离(Buffer Distance)和输出路径(Output Path)。缓冲距离是指围绕一个地理要素创建一个指定距离的区域,这个操作可以用来计算地理要素的影响力范围、服务范围等...

    Windows系统C程序函数指南-final.pdf

    Buffer Manipulation 存储区操作函数 存储区操作函数主要用于处理内存中的数据。这类函数在程序开发中非常常见,涉及内存数据的复制、比较、初始化等操作。 - **memchr**:此函数用于在指定长度的内存区域中查找...

    php中的buffer缓冲区用法分析

    Buffer缓冲区允许程序将数据暂存到内存中,而不是直接输出到浏览器或其他终端,直到缓冲区满或者通过特定指令触发,才会一次性将所有数据发送出去。 ### 一、Buffer缓冲区的概念 Buffer,即缓冲区,是一种在内存中...

    串行口通信程序,可以控制缓冲的大小

    VB中的串口通信通常通过`MSComm`控件来实现,这个控件提供了如`InputBuffer`, `OutputBuffer`等属性来控制缓冲区的使用。`InputBuffer`用于存放接收到的数据,而`OutputBuffer`则用于存放待发送的数据。通过调整这两...

    对比C语言中的setbuf()函数和setvbuf()函数的使用

    在这个例子中,`input`文件被设置为满缓冲模式,缓冲区大小为512字节,而`output`文件则被设置为行缓冲,缓冲区大小为132字节。 总结起来,`setbuf()`和`setvbuf()`函数为程序员提供了更灵活的控制文件流缓冲区的...

    Laravel开发-buffer

    在Laravel框架中,"buffer"通常指的是对输出进行缓冲的技术,这可以帮助优化性能,特别是在处理大量输出或者需要延迟渲染内容的情况下。Laravel 5.*的简单缓冲区API包是专门为开发者提供方便、高效的缓冲功能而设计...

    CCS的FIR滤波c函数

    在这个例子中,`accum`是累加器,`input_buffer`和`output_buffer`分别存储输入和输出样本,`filter_coeffs`是系数数组,`input_index`和`output_index`跟踪当前处理的样本位置。 4. **缓冲管理**:为了实现连续的...

    STM32配置DAC输出固定电压和方波

    3. DAC_OutputBuffer:决定是否使用输出缓存,输出缓存用来减小输出阻抗,让DAC可以不借助外部运放直接驱动负载。一般建议设置为关闭外部缓存(DAC_OutputBuffer_Disable)。 知识点四:输出波形配置 若要使用STM32...

    C++高效清屏函数个人感觉还不错

    - 参数:`STD_OUTPUT_HANDLE`表示获取标准输出句柄。 2. **GetConsoleScreenBufferInfo**:获取控制台屏幕缓冲区的信息。 - 参数:控制台句柄;用于接收信息的结构体指针。 3. **FillConsoleOutputCharacter**:...

    LabWindowsCVI串口通信函数.pdf

    1. ComRd函数:该函数从指定端口读取字符并存放到缓冲区中。函数原型为:int ComRd(int COM_Port, char Buffer[], int Count) 其中,COM_Port用于指定端口号;Buffer[]为字符型数组,用来存放读取出的字符串;Count...

    PHP使用缓存即时输出内容(output buffering)的方法

    1. `ini_get('output_buffering')`: 这个函数用于获取当前输出缓存的状态,也就是是否开启了输出缓存。如果返回值为1,则表示输出缓存功能已经开启;如果是0,就表示没有开启。这对于检查当前环境配置是否满足使用...

    STM32L0系列DAC输出

    sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; // 开启输出缓冲 sConfig.DAC_DataAlignment = DAC_ALIGN_12B_R; // 右对齐,12位分辨率 HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1); // ...

    php缓冲 output_buffering和ob_start使用介绍

    `output_buffering=4096`意味着,当使用`echo`、`print`等函数输出数据时,这些数据会被暂存在PHP的输出缓冲区中,直到缓冲区满或遇到特定指令,如`ob_end_flush()`,才会将数据传输给TCP缓冲,进而传递给客户端...

    ws2_32.dll 拦截send函数并把发送内容写到ob文件里

    在描述中提到的"OB文件"可能是"Output Buffer"的简称,用于存储拦截到的网络数据。当`send()`函数被调用时,自定义的钩子代码会捕获到要发送的数据,将其复制到"OB"文件,然后再继续执行原始的`send()`函数逻辑,...

    oracle 函数 oracle函数 存储过程

    1. `enable`:启用`DBMS_OUTPUT`,允许输出信息到缓冲区。`buffer_size`参数可设置缓冲区大小,默认为20000个字符。 2. `disable`:禁用`DBMS_OUTPUT`,阻止输出信息。这通常在不再需要输出时使用。 3. `put_line`...

    RingBuffer

    `RingBuffer.h`通常包含了RingBuffer类的声明,包括构造函数、方法如`push`(添加元素)、`pop`(移除元素)、`size`(获取当前缓冲区大小)等。`RingBuffer.cpp`则包含了这些方法的具体实现。通过这些接口,程序员...

Global site tag (gtag.js) - Google Analytics