`
dimingchan
  • 浏览: 54896 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

详解PHP ob_start()函数的功能要点

阅读更多
PHP函数的运用范围非常广泛,我们可以在不断的实践中去体会这些函数给我们带来的好处。下面我们就来具体分析一下有关PHP ob_start()函数的功能特点。

比如你用得到服务器和客户端的设置信息,但是这个信息会因为客户端的不同而不同,如果想要保存phpinfo()函数的输出怎么办呢?在没有缓冲区控制之前,可以说一点办法也没有,但是有了缓冲区的控制,我们可以轻松的解决:

   1. < ?php 
   2. ob_start(); //打开缓冲区 
   3. phpinfo(); //使用phpinfo函数 
   4. $info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info 
   5. $file=fopen(’info.txt’,'w’); //打开文件info.txt 
   6. fwrite($file,$info); //写入信息到info.txt 
   7. fclose($file); //关闭文件info.txt 
   8. ?>

用以上的方法,就可以把不同用户的phpinfo信息保存下来,这在以前恐怕没有办法办到!其实上面就是将一些“过程”转化为“函数”的方法!

或许有人会问:“难道就这个样子吗?还有没有其他用途?”当然有了,比如笔者论坛的PHP 语法加亮显示就和这个有关(PHP默认的语法加亮显示函数会直接输出,不能保存结果,如果在每次调用都显示恐怕会很浪费CPU,笔者的论坛就把语法加亮函数显示的结果用控制缓冲区的方法保留了)。

可能现在大家对PHP ob_start()函数的功能有了一定的了解,上面的一个例子看似简单,但实际上已经掌握了使用ob_start()的要点。

<1>.使用PHP ob_start()函数打开browser的cache,这样可以保证cache的内容在你调用flush(),ob_end_flush()(或程序执行完毕)之前不会被输出。

<2>.现在的你应该知道你所拥有的优势:可以在任何输出内容后面使用header,setcookie以及session,这是 PHP ob_start()函数一个很大的特点;也可以使用ob_start的参数,在cache被写入后,然后自动运行命令,比如 ob_start(”ob_gzhandler”);而我们最常用的做法是用ob_get_contents()得到cache中的内容,然后再进行处理……

<3>.当处理完毕后,我们可以使用各种方法输出,flush(),ob_end_flush(),以及等到程序执行完毕后的自动输出。当然,如果你用的是ob_get_contents(),那么就要你自己控制输出方式了。
分享到:
评论

相关推荐

    用PHP的ob_start();控制您的浏览器cache!

    ### 使用PHP的`ob_start();`控制浏览器缓存详解 #### 标题及描述解析 本文旨在探讨如何通过PHP中的`ob_start();`函数来控制浏览器缓存,这对于优化网站性能、减少网络流量以及改善用户体验等方面具有重要意义。 ##...

    关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解

    PHP输出缓冲函数主要包括ob_start(), ob_get_contents(), ob_end_clean(), ob_get_clean()等,这些函数在Web开发中非常有用,能够有效地管理输出的内容,特别是在进行复杂的输出操作或文件传输时。下面将详细介绍...

    php输出掌握的学习笔记_.docx

    `ob_start()` 函数还允许指定一个回调函数,该函数会在输出缓冲区被刷新或清理时被调用。通过这种方式,可以在输出数据之前对其进行修改或处理。 **示例代码**: ```php &lt;?php function customCallback($buffer) { ...

    PHP flush()与ob_flush()的区别详解

    在PHP编程中,`flush()`和`ob_flush()`都是用于处理输出缓冲的函数,但它们在功能和使用场景上存在一些关键的区别。本篇文章将详细阐述这两个函数的原理和它们在实际应用中的差异。 首先,了解缓冲的概念。缓冲...

    PHP输出缓存ob系列函数详解

    ob_gzhandler:ob_start()的回调函数,用于GZIP压缩缓冲区内容。 ob_list_handlers:列出当前使用的输出处理程序。 output_add_rewrite_var:添加URL重写变量。 output_reset_rewrite_vars:重置URL重写变量。 ...

    PHP 缓存详情机制

    上述代码中,`ob_start()`函数用于创建一个新的PHP缓存。`ob_flush()`函数则负责将当前缓存中的数据写入到上级缓存(这里是Apache缓存),而`flush()`函数则用于将Apache缓存中的数据发送到浏览器。通过这种方式,...

    详解php实现页面静态化原理

    php中output_buffering内置函数,简称ob函数,主要会用到的下面几个: ob_start #打开输出控制缓冲 ob_get_contents #获取输出缓冲区内容 ob_clean #清空输出缓冲区 ob_get_clean #获取当前缓冲区内容,然后清空...

    文档:PHP缓存技术详解

    1. **代码级缓存**:例如使用`ob_start()`函数开启输出缓冲区,这可以在页面输出前截取所有输出流,之后通过`ob_get_contents()`获取缓冲区的内容,最后通过`ob_end_clean()`清除或`ob_end_flush()`发送并清除缓冲区...

    PHP生成Html文件

    常用函数包括`ob_start()`、`ob_end_flush()`和`ob_get_contents()`等。 **实现步骤** 1. **开启缓冲**:使用`ob_start()`函数开启输出缓冲。 2. **输出内容**:正常执行页面输出操作。 3. **获取内容**:使用`ob_...

    php中ob(Output Buffer 输出缓冲)函数使用方法

    ### PHP中的ob(输出缓冲)函数使用方法详解 在PHP编程过程中,经常需要用到一些能够直接产生输出的函数,比如`passthru()`、`readfile()`、`var_dump()`等。但在某些场景下,可能需要将这些函数的输出导入到文件中...

    PHP缓存机制Output Control详解

    Output Control的主要操作函数包括ob_start()、ob_get_contents()、ob_end_flush()、ob_end_clean()和ob_flush()等。ob_start()函数用于启动输出缓冲,当脚本开始运行时,如果没有输出任何内容,可以使用ob_start()...

    PHP 输出缓存详解

    1. **输出控制函数**:这些函数如`ob_start()`、`ob_end_flush()`、`flush()`等允许你开启和管理PHP的输出缓冲区。一旦开启了缓冲区,脚本中的数据将被存储在内存中,而不是立即发送到浏览器。 2. **`ob_start()`**...

    PHP输出缓冲控制Output Control系列函数详解

    1. `ob_start()`:开启输出缓冲。可选参数`outputcallback`允许提供一个回调函数,该函数将在缓冲区内容被发送之前调用,对内容进行处理。`chunk_size`参数指定缓冲区大小,`erase`参数决定是否清除缓冲区内容。例如...

    PHP缓存技术详解(经典)

    - **`ob_start()`**:该函数用于启动输出缓冲。在发送任何HTTP头部之前,页面的内容都会被缓存在内存中,直到调用`ob_get_contents()`或`ob_end_clean()`等函数进行处理。 - **使用场景**:在生成静态页面时,可以...

    PHP使用zlib扩展实现GZIP压缩输出的方法详解

    在具体的应用中,PHP代码层面的压缩实现,可以通过ob_start函数配合自定义的压缩函数来实现。例如,可以定义一个名为ob_gzip的函数来处理内容的压缩过程: ```php function ob_gzip($content) { if (!headers_sent...

Global site tag (gtag.js) - Google Analytics