在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)里再输出.
分享到:
相关推荐
#### 二、主要的输出缓冲函数 处理输出缓冲的主要函数包括: 1. **ob_start()**:启动输出缓冲。调用此函数后,PHP会将所有后续的输出重定向到一个内部缓冲区中,而不再直接发送到客户端。 2. **ob_get_contents()...
在计算机硬件和操作系统层面,输出缓冲器(Output Buffer)是一种存储区域,用于暂时存放待发送的数据,以优化数据传输过程。这个主题通常涉及计算机架构、操作系统、网络通信以及编程等多个IT领域的知识。 在...
本文实例讲述了php 输出缓冲 ...而php的输出缓冲也一样,当我们通过echo,print等函数输出时,这些内容首先会保存在output buffer中,php脚本执行完毕或者强制执行缓冲输出操作,内容才会在浏览器上显示。 现在的php版
文档还提到了缓冲区分析的一些关键概念,比如缓冲距离(Buffer Distance)和输出路径(Output Path)。缓冲距离是指围绕一个地理要素创建一个指定距离的区域,这个操作可以用来计算地理要素的影响力范围、服务范围等...
Buffer Manipulation 存储区操作函数 存储区操作函数主要用于处理内存中的数据。这类函数在程序开发中非常常见,涉及内存数据的复制、比较、初始化等操作。 - **memchr**:此函数用于在指定长度的内存区域中查找...
Buffer缓冲区允许程序将数据暂存到内存中,而不是直接输出到浏览器或其他终端,直到缓冲区满或者通过特定指令触发,才会一次性将所有数据发送出去。 ### 一、Buffer缓冲区的概念 Buffer,即缓冲区,是一种在内存中...
VB中的串口通信通常通过`MSComm`控件来实现,这个控件提供了如`InputBuffer`, `OutputBuffer`等属性来控制缓冲区的使用。`InputBuffer`用于存放接收到的数据,而`OutputBuffer`则用于存放待发送的数据。通过调整这两...
在这个例子中,`input`文件被设置为满缓冲模式,缓冲区大小为512字节,而`output`文件则被设置为行缓冲,缓冲区大小为132字节。 总结起来,`setbuf()`和`setvbuf()`函数为程序员提供了更灵活的控制文件流缓冲区的...
在Laravel框架中,"buffer"通常指的是对输出进行缓冲的技术,这可以帮助优化性能,特别是在处理大量输出或者需要延迟渲染内容的情况下。Laravel 5.*的简单缓冲区API包是专门为开发者提供方便、高效的缓冲功能而设计...
在这个例子中,`accum`是累加器,`input_buffer`和`output_buffer`分别存储输入和输出样本,`filter_coeffs`是系数数组,`input_index`和`output_index`跟踪当前处理的样本位置。 4. **缓冲管理**:为了实现连续的...
3. DAC_OutputBuffer:决定是否使用输出缓存,输出缓存用来减小输出阻抗,让DAC可以不借助外部运放直接驱动负载。一般建议设置为关闭外部缓存(DAC_OutputBuffer_Disable)。 知识点四:输出波形配置 若要使用STM32...
- 参数:`STD_OUTPUT_HANDLE`表示获取标准输出句柄。 2. **GetConsoleScreenBufferInfo**:获取控制台屏幕缓冲区的信息。 - 参数:控制台句柄;用于接收信息的结构体指针。 3. **FillConsoleOutputCharacter**:...
1. ComRd函数:该函数从指定端口读取字符并存放到缓冲区中。函数原型为:int ComRd(int COM_Port, char Buffer[], int Count) 其中,COM_Port用于指定端口号;Buffer[]为字符型数组,用来存放读取出的字符串;Count...
1. `ini_get('output_buffering')`: 这个函数用于获取当前输出缓存的状态,也就是是否开启了输出缓存。如果返回值为1,则表示输出缓存功能已经开启;如果是0,就表示没有开启。这对于检查当前环境配置是否满足使用...
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; // 开启输出缓冲 sConfig.DAC_DataAlignment = DAC_ALIGN_12B_R; // 右对齐,12位分辨率 HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1); // ...
`output_buffering=4096`意味着,当使用`echo`、`print`等函数输出数据时,这些数据会被暂存在PHP的输出缓冲区中,直到缓冲区满或遇到特定指令,如`ob_end_flush()`,才会将数据传输给TCP缓冲,进而传递给客户端...
在描述中提到的"OB文件"可能是"Output Buffer"的简称,用于存储拦截到的网络数据。当`send()`函数被调用时,自定义的钩子代码会捕获到要发送的数据,将其复制到"OB"文件,然后再继续执行原始的`send()`函数逻辑,...
1. `enable`:启用`DBMS_OUTPUT`,允许输出信息到缓冲区。`buffer_size`参数可设置缓冲区大小,默认为20000个字符。 2. `disable`:禁用`DBMS_OUTPUT`,阻止输出信息。这通常在不再需要输出时使用。 3. `put_line`...
`RingBuffer.h`通常包含了RingBuffer类的声明,包括构造函数、方法如`push`(添加元素)、`pop`(移除元素)、`size`(获取当前缓冲区大小)等。`RingBuffer.cpp`则包含了这些方法的具体实现。通过这些接口,程序员...