ob_start()

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; 
}    
原文地址:https://www.cnblogs.com/baby123/p/5953173.html