PHPCMS的文章的浏览次数统一通过页面里面的一段JS去请求浏览次数的API来完成计数统计,这样就算整个页面静态化之后,因为有JS去请求,所以还是能统计到.
根目录下的api.php是所有api的总入口,根据传入的$_GET['op']的值不同,而去调用phpcms/api/目录下不同的api文件.因为统计次数传入的$_GET['op']='count',所以调用的就是phpcms/api/count.php,而这个文件也是一个纯过程化的代码,直接往phpcms的hits表里面写统计数据.
上面说的是统计入库,那么在文章页面如何调用该次数呢?
发现是通过
来输出统计次数的.span中间没有类似与{$hits}这样的变量输出.实际也是刚刚的那段外链式的js文件,刚刚已经说过.上面的那段js通过api.php通过$_GET['op']包含了phpcms/api/count.php,发现count.php在最后面执行了一句jquery操作,就是把前面刚刚统计的浏览次数插入到了$("#htis")里里面.
//执行数据库浏览次+1的操作,然后得到最新的浏览次数$view
?>
$('#hits').html('<?php echo $views?>');
由于php标签之外就是html,所以可以随便写,而现在这个php文件却是一个js的方式引入的,所以在最末尾有写了一段js,而js里面的参数里又套了php.
有点意思.
之前看ThinkSNS的js代码和css代码文件太多都是通过引用一个php来统一对所有的css代码和js代码分别压缩然后引入.只是自己一直没这么用.
挺好,点赞哈!
今天早上起床想了下,类似的情况还有,比如上传图片,在上传完毕php那端echo一段js代码