• 技术文章 >php教程 >PHP源码

    php ob_start()函数实现当前页面内容缓存输出

    2016-06-08 17:22:50原创476
    页面缓存就是把页面保存到一个文件中,下次读出时直接调用文件而不查询数据库,这里我们介绍利用ob_start()来实现。


    代码如下 复制代码

    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 >

    It's like comparing apples to oranges.


    < / body >
    < / html >
    < ?php
    ob_end_flush();
    ? >

    以上程序会输出:

    < html >
    < body >
    < p>It's like comparing oranges to oranges.
    < / body >
    < / html >

    至于更多的,就去官网的手册里看吧。

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:quot info phpinfo start gt
    上一篇:php中mb_detect_encoding检测文件编码方法[非完美] 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 字符串加密解密类• PHP一个敏感信息过滤思路• 快速排序的算法• php中$_SERVER['HTTP_USER_AGENT']判断是否为手机访问网站• php 模拟用户抓取网页内容程序
    1/1

    PHP中文网