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-->
因为实在不懂,请教请教!不知道是否划算。
大谋的
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-->
因为实在不懂,请教请教!不知道是否划算。
新闻资讯 更多
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法