我是PHP新手``````什么是缓存 什么又是缓冲``
不知道什么意思 希望大家帮我解释一下  或提供点好贴  谢谢``````````````````

解决方案 »

  1.   

    不知道你在说什么?Cache?还是指的这个http://cn.php.net/manual/zh/ref.outcontrol.php
      

  2.   

    你说的缓存,应该是一个副本,比如你要生成的页面,很多数据库查询操作,但是又不需要经常更新,可以产生缓存的办法来避免过多的数据库查询,比如:<?php
    if(缓存的html没过期)
       header("location: x.html");
    else{
        查询数据库,生成页面 $html;
        $fp = fopen("x.html");
        fwrite($fp, $html ... );
    }
    ?>这个x.html就是缓存。而缓冲就是 $buffer = str();
    这个缓冲区在php中并不明显,没什么作用,因为空间本来就是任意分配,并且会被回收的。
      

  3.   

    iasky说的ob些列函数,用于页面缓冲。请LZ看看说明。 :)
      

  4.   

    一个利用缓冲区来刷静态文件的类.希望能给你一些帮助...<?
    /**
    * 进行文件刷静态处理.

    * 这里是详细说明.
    * @author  徐兴
    * @package  lib
    * @version v1.0
    * @copyright juwangTech.
    *
    */class obClass {

    /**
     * *
     * @var 目标静态文件 $destFile
     * @var 目标旗帜    $lifeFlag
     * @var 文件句柄s   $fp
     */
    private $destFile;
    private $lifeFlag;
    private $fp;
       function obClass() {  }

        //加载文件
    function loadFile( $destFile )
    {
    $this->destFile  = $destFile;
    //$this->lifeFlag = time() - fileatime($this->destFile);
    }

        /**
     * 检查文件的存在时间.
     *
     * @param 所指定文件的存在时间 $time
     * @return bool
     */
    function check( $time )
    {
       if(file_exists( $this->destFile ))
       {
    $this->lifeFlag = $time + fileatime( $this->destFile ) - time();
       }
       else {
        $this->lifeFlag = -1;
       }
    if($this->lifeFlag > 0)
    {
    if(DEBUG == '1')
    echo "此文件在指定生存期内,不进行刷静态";
    return false;
    }
    else {
    if(DEBUG == '1')
    echo "开始刷静态文件".$this->destFile."<hr/>";
    ob_start();
    return true;
    }

    }

    /**
     * 将缓冲写入到文件中去..
     *
     */ 
    function write()
    {
    if( $this->lifeFlag > 0 ) exit();

    $this->fp = fopen( $this->destFile , "w" );
    fwrite( $this->fp , ob_get_contents() );

    ob_clean();
    if( DEBUG == '1' )
    echo "开始刷静态文件".$this->destFile."<hr/>";
    fclose( $this->fp );
    }
    }?>使用demo<?
    if(!defined("DEBUG")) define("DEBUG","1");
        require("../obClass.php");
     /** ob 类的使用流程*
      *  1一新建一个ob对象。
      *  2二加载需要ob的文件
      *  3判断文件生存时间,写入要刷表态的内容,刷静态处理.
      */   
     
     
     //一新建一个ob对象
    $ob = new obClass();

    // 二加载需要ob的文件for($i = 0;$i < 100; $i++)
    {
        $dest_file = "/home/httpd/web/static/".rand(0,100).".html";
    $ob->loadFile($dest_file);
        //3判断文件生存时间,写入要刷表态的内容,刷静态处理.
    if($ob->check(0))
    {  
    echo "$dest_file";

    echo "";
    $ob->write();
    }
    } ?>
      

  5.   

    缓存cache一般用于高速存储.解决速度匹配瓶颈问题...
    就像cpu&mem的频率,引入cpu一级,二级缓存后,使缓存命中率提升会使整个访问存储器的平均访问时间缓冲无关于命中率,当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区.为了读写方便区别
    1缓存是硬件实现,缓冲是软件实现
    2缓存为提高命中率,缓冲为了读写方便
    3缓存对软件程序员是透明的,缓冲不是
      

  6.   

    请教一下striker_un ,你5楼demo中
    的$i循环100次是作什么用的?