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;
}    
时间: 2024-08-06 01:42:19

ob_start()的相关文章

php中 ob_start()有什么作用

<?php ob_start(); //开启缓冲区 echo "这是第一次输出内容!\n"; $ff[1] = ob_get_contents() ; //获取当前缓冲区内容 ob_flush();//缓冲器清除 echo "这是第二次输出内容!\n"; $ff[2] = ob_get_contents() ; //获取当前缓冲区内容 echo "这是第三次输出内容!\n"; $ff[3] = ob_get_contents() ; //获

PHP中的ob_start() 的使用

1.在PHP编程中, 我们经常会遇到一些直接产生输出的函数, 如passthru(),readfile(), var_dump() 等. 但有时我们想把这些函数的输出导入到文件中,或者先经过处理再输出, 或者把这些函数的输出作为字符串来处理. 这时我们就要用到 Output Buffer(输出缓冲) 函数了.处理输出缓冲的函数主要有这么几个:ob_start() 开始输出缓冲, 这时PHP停止输出, 在这以后的输出都被转到一个内部的缓冲里.ob_get_contents() 这个函数返回内部缓冲

PHP的ob_start()函数用法

经典参考片段: <?php ob_start(); echo '123'; echo '456'; echo '789'; $content = ob_get_contents(); ob_end_clean(); echo $content; ?> PHP手册上说: 输出缓冲区是可堆叠的,这即意谓着,当有一个ob_start() 是活跃的时, 你可以调用另一个 ob_start() . 只要确保又正确调用了 ob_end_flush() 恰当的次数即可. 如果有多重输出回调函数是活跃的,输出

PHP ob_start() 函数介绍

ob_start() 函数介绍: http://www.nowamagic.net/php/php_ObStart.php ob_start()作用: http://zhidao.baidu.com/link?url=qhOcqHCNitPuSSKZOVI8bsW_eZaJYqZJ1cLctQDTWKvnBbV4pQVyYvfi3-v4whainj_WNTiQw2KPex6ZUGqR0IiujRWV79PtOh3jAPUwAEu ob相关函数 http://www.nowamagic.net/l

PHP中的ob_start用法

Example 1. 程序代码 程序代码<?phpob_start(); //打开缓冲区echo \"Hellon\"; //输出header("location:index.php"); //把浏览器重定向到index.phpob_end_flush();//输出全部内容到浏览器?> 所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错.

PHP中的ob_start用法详解

用PHP的ob_start();控制您的浏览器cache Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用.我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. 程序代码 程序代码<?phpob_start(

迁移笔记:对ob_start()的总结

1.Flush:刷新缓冲区的内容,输出. 函数格式:flush() 说明:这个函数经常使用,效率很高. 2.ob_start :打开输出缓冲区 函数格式:void ob_start(void) 说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区. 为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容. 3 .ob_get_contents :返回内部缓冲区的内容. 使用方法:string ob_get_contents(v

ob_start ob_end_clean的用法 fetch

今天突然明白了, ob_start  ob_end_clean 的用法ob_start();//缓存开始echo "lijianwei";$str=ob_get_contents();//获取缓存内容ob_end_clean();//清除缓存,否则会输出的,并关闭缓存echo $str;//最后程序会输出  lijianwei  今天有点明白像  smarty  中的fetch  及thinkphp中的fetch中都是这样 ob_start();//执行页面输出 $str=ob_get

ob_start()、ob_end_flush和ob_end_clean()多级缓冲

ob_start() 和 ob_end_flush() 是一对很好的搭档,可以实现对输出的控制.当成一对出现理解起来就没什么问题,但是当他们两个各自出现次数增加时,就比较难理解了. <?php ob_start(); echo 'level 1<br/> '; ob_start(); echo 'level 2<br/> '; ob_start(); echo 'level 3<br/> '; ob_end_flush(); ob_end_flush(); ob_

php关于ob_start(&#39;ob_gzhandler&#39;)启用GZIP压缩的bug

如果使用ob_start("ob_gzhandler"); 则ob_clean()后面的输出将不显示,这是个bug,可以用ob_end_clean();ob_start("ob_gzhandler"); 代替ob_clean();否则后面输出内容将是空. <?phperror_reporting(E_ALL);ob_start("ob_gzhandler");echo "content";ob_clean();echo