ob_start()函数用于打开缓冲区
1.用于header()之前
ob_start(); //打开缓冲区
echo "Hellon"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出
2.phpinfo()函数可获取客户端和服务器端的信息,但要保存客户端信息可以用缓冲区的方法
ob_start(); //打开缓冲区
phpinfo(); //使用phpinfo函数
$info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info
$file=fopen(/'info.txt/',/'w/'); //打开文件info.txt
fwrite($file,$info); //写入信息到info.txt
fclose($file); //关闭文件info.txt
3.静态页面技术
php页面生成html文件
<?php
ob_start();
if(@readfile($tem_path)){ //把指定路径中的文件内容写入缓存中。如果不存在返回false
$content= ob_get_contents(); //得到缓存中的内容
$fp = fopen("1.html", "w"); //创建一个文件,并打开,准备写入
fwrite($fp, $content); //把php页面的内容全部写入1.html
}
fclose($fp);
ob_clean();
?>
4.输出代码
$code = "echo 'aa';echo '<hr>';";
$rs = run_code($code);
echo $rs;
function run_code($code) {
if($code) {
ob_start();
eval($code);
$contents = ob_get_contents();
ob_end_clean();
}else {
echo "错误!没有输出";
exit();
}
return $contents;
}