详情页

zblog缓存插件sf_cache如何增加点击数

时间:2023年05月22日

编辑:佚名

用了大谋的sf_cache缓存插件,非常好用,美中不足的是点击数
大谋的
sf_cache缓存插件
非常好,但是这个缓存,不能增加点击数,
哪位大神,有更好的方案。
1、我想在
PHP
function sf_cache_begin(){
    global $zbp;
    if(!$zbp->Config('sf_cache')->diskenable)return;
    $dir =$zbp->path .'/zb_users/cache/sf_cache/';
    if(!is_dir($dir)){
        mkdir ($dir);
    }
    $sefurl=sf_cache_request_uri2();
    $sf_cache_key=$dir.md5(sf_cache_request_uri2()).'.dat';
    if(file_exists($sf_cache_key)){
        $sf_cache_file_time=filemtime($sf_cache_key);
        if($sf_cache_file_time){
            $nowtime = time();
            $disktime=$zbp->Config('sf_cache')->disktime;
            if(($nowtime-$sf_cache_file_time)<($disktime*60)){
                echo file_get_contents($sf_cache_key);
                echo "<!-- 读取缓存文件 :".date('Y-m-d H:i:s',$sf_cache_file_time).",缓存时间:".$disktime."分钟 -->";
                RunTime();
                exit;
            }
        }
    }
    ob_start();
}
这里增加一个增加点击数的功能,但是很显然我不会。
2、或者如dedecms那样,在显示的页面中,使用 XX.js 调用和增加点击数
写了一个 hit.php
<?php
require 'zb_system/function/c_system_base.php';
$id = $_REQUEST['id'];
$article=GetPost((int)$id);
$article->ViewNums += 1;
$sql = $zbp->db->sql->Update($zbp->table['Post'], array('log_ViewNums' => $article->ViewNums), array(array('=', 'log_ID', $id)));
$zbp->db->Update($sql);
RunTime();
exit;
?>
在文章页加上:
<script src="/hit.php?id={$article.ID}" type="text/javascript"></script>
使用大谋的插件,由之前的:
<!--88.70 ms , 17 query , 4330kb memory , 0 error-->
变为:
<!-- 读取缓存文件 :2019-09-01 19:05:11,缓存时间:300分钟 --><!--47.39 ms , 4 query , 1876kb memory , 0 error-->
变化是有一点的。
现在问题来了,由于什么也不会,
1、hit.php 代码能不能精简?
因为他也查询了三次:
<!--14.24 ms , 3 query , 1273kb memory , 0 error-->
因为实在不懂,请教请教!不知道是否划算。
相关文章
猜你需要