天天看点

PHP中的ob_start() 的使用

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