静态博客如何做网页计数器
前言
所谓静态博客,最基本的要求就是不用数据库了。如 php-mdblog 这样的,连编译环节都省去了,直接开包即用,很是绿色环保。
想统计下访问量
用 百度统计 或 Google Analytics 可以做到很强大的访问统计,安装也很简单,只要在 includes/footer.php
中加一段 js 代码即可。
想显示访问量
这个需求有点头疼,照理来说,互联网发展到今天,这个需求是一个很常见的需求,然而如大家所见,虽然百度、谷歌等大厂都支持访问统计功能,然而对这显示访问量的基本需求却视而不见,很让人觉得他拿走用户行为可以做大数据,至于这大数据怎么用,只能靠你自己发掘了,很是无语。
群众的力量
大厂看不上的东西,小百姓只能自己玩了,目前第三方的解决方案还是有不少的,最热的应该是[不蒜子](http://busuanzi.ibruce.info/)
了,给他们点赞。
绿色环保
话说回来,用上了第三方的计数器,这数字都存到第三方那儿了,这和我 php-mdblog
的绿色环保的理念有点不符啊。
解决这个问题
所谓计数器,不就是记个数字嘛。
直接 PHP 打开一个文件,里面填上数字,用户来一个,就给数字加1,这问题好像也解决了。
要考虑并发啊
虽然可以预见的是,用php-mdblog
做博客的访问量肯定寥寥无几,但咱也得有严谨的态度,计数器这件事上,咱得考虑并发。
笨办法
取数字+1再填回去,这事儿太不严谨了。
然而我又想到了一个更简单的方案, 在 PHP 里,file_put_contents
这个方法支持 FILE_APPEND
参数,启用该参数后,可以像文件末端追加字符,且自带排队逻辑,不会有并发问题。
绿色环保,就是它了。
一个 low 到极致的计数器方案诞生
说一下 php-mdblog
的计数器方案:
- 每篇博客文件夹下,建一日志文件,叫
md_pv.log
- 每次有用户访问博客文章时,向这个日志文件塞1个字符进去。
- 使用
filesize
方法,取该日志文件的字节数,即为访问量。
ohye,搞定。
后语
至于全站访问量怎么做?当然是建一个独立的日志文件,所有访问都给它塞1字符啰,你可别告诉我你想遍历一遍文章计数加起来。。
附: php-mdblog : https://github.com/wanyaxing/php-mdblog