1.在PHP编程中, 我们经常会遇到一些直接产生输出的函数, 如passthru(),readfile(), var_dump() 等.
但有时我们想把这些函数的输出导入到文件中,或者先经过处理再输出, 或者把这些函数的输出作为字符串来处理.
这时我们就要用到 Output
Buffer(输出缓冲) 函数了.
处理输出缓冲的函数主要有这么几个:
ob_start() 开始输出缓冲, 这时PHP停止输出,
在这以后的输出都被转到一个内部的缓冲里.
ob_get_contents() 这个函数返回内部缓冲的内容.
这就等于把这些输出都变成了字符串.
ob_get_ length() 返回内部缓冲的长度.
ob_end_flush()
结束输出缓冲, 并输出缓冲里的内容. 在这以后的输出都是正常输出.
ob_end_clean() 结束输出缓冲, 并扔掉缓冲里的内容.
举个例子:
define(‘ob_start‘,true);
if(ob_start){
echo ‘<p>start is
ok</p>‘.‘<br>‘;
}
echo
‘sunzhiyan‘.‘<br>‘;
//var_dump($var);
$out =
ob_get_contents();
ob_end_clean();
ob_end_flush();
echo ‘<pre>‘.$out.‘</pre>‘ ;
这里我们只有通过最后的输出$out,才能能到前面的输出结果
start is ok
sunzhiyan
这里值得注意的问题是,你的输出必须在缓冲结束后,才能够输出,在没有结束的情况下,你输出的时候,该输出只是再次的添加到输出缓冲里面而已,只有再次的用ob_get_contents()
函数返回存入到输出缓冲里面的内容,才能得到需要输出的值