php,缓存数据流(标准输出)

来源:互联网 发布:java crm项目介绍 编辑:程序博客网 时间:2024/05/22 05:28
function get_include_contents($filename) {        if (is_file($filename)) {                ob_start();                include $filename;                $contents = ob_get_contents();                ob_end_clean();                return $contents;        }        return false;}
我们假设一个页面,他的内容由正文访问计数这两个个因素决定.
出于节约服务器资源的目的,访问计数的增加并不重新获取页面.
function etag_cache($page_id){        global $_SERVER,$_COOKIE;        /* Etag就是个字符串,自定义的.*/        $old_etag_id = "0-0";        /*第一部分是正文修改时间, 第二部分是访问数*/        if(array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER)){                $old_etag_id = intval(trim($_SERVER['HTTP_IF_NONE_MATCH']));        }        $new_etag_id=get_new_etag_id($page_id);/*你自己的函数*/        list($o_t,$o_n)=explode('-',$old_etag_id);        list($n_t,$n_n)=explode('-',$new_etag_id);        if($n_t==$o_t){                header('ETag: ' . $old_etag_id);                header('HTTP/1.1 304 Not Modified');        }else{                header('ETag: ' . $new_etag_id);                /* echo new content */        }}
0 0