最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • php ob_start()函数实现当前页面内容缓存输出

    页面缓存就是把页面保存到一个文件中,下次读出时直接调用文件而不查询数据库,这里我们介绍利用ob_start()来实现.

    例,代码如下:

    <?php  
    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  
    //或直接用 file_put_content('info.txt',$info);  
    ?> 

    以上的方法,可以把不同用户的phpinfo信息保存下来,这里我们可以着重看看这个方法的使用技巧,用这个方法可以实现生成静态页面的便利.

    并且用这个方法比用file_get_conents()的方法更合理更有效率,简单的说个应用吧,比如想要把phpinfo()的内容写入文件,可以这样做:

    ob_start(); 
    $phpinfo = phpinfo(); 
    //写入文件 
    ob_end_flush(); 
    或者还有这样的用途: 
    ob_start(); //打开缓冲区 
    echo "Hellon"; //输出 
    header("location:index.php"); //把浏览器重定向到index.php 
    ob_end_flush();//输出全部内容到浏览器 

    header()会发送一段文件头给浏览器,但是如果在header()之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会报错,但是如果输出在ob_start()和ob_end_flush()之间,就会没有问题,因为在输出前打开了缓冲区,echo后面的字符就不会输出到浏览器,而是保留在服务器,知道使用flush才会输出,所以header()会正常执行.

    当然,ob_start()还可以有参数,参数就是一个回调函数,例子如下:

    <? php 
    function callback($buffer) 
    { 
      // replace all the apples with oranges 
      return (str_replace("apples", "oranges", $buffer)); 
    } 
    ob_start("callback"); 
    ?> 
    <html> 
    <body> 
    <P>It's like comparing apples to oranges.</P> 
    </ body > 
    </ html > 
    <?php 
    ob_end_flush(); 
    ?> 
    以上程序会输出: 
    <html > 
    <body> 
    <p>It's like comparing oranges to oranges.</ p> 
    </ body> 
    </ html> 

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » php ob_start()函数实现当前页面内容缓存输出
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情