阿星的博客

静态博客如何做网页计数器

前言

所谓静态博客,最基本的要求就是不用数据库了。如 php-mdblog 这样的,连编译环节都省去了,直接开包即用,很是绿色环保。

想统计下访问量

百度统计Google Analytics 可以做到很强大的访问统计,安装也很简单,只要在 includes/footer.php中加一段 js 代码即可。

Snipaste_2018-08-08_17-08-54.png

想显示访问量

这个需求有点头疼,照理来说,互联网发展到今天,这个需求是一个很常见的需求,然而如大家所见,虽然百度、谷歌等大厂都支持访问统计功能,然而对这显示访问量的基本需求却视而不见,很让人觉得他拿走用户行为可以做大数据,至于这大数据怎么用,只能靠你自己发掘了,很是无语。

群众的力量

大厂看不上的东西,小百姓只能自己玩了,目前第三方的解决方案还是有不少的,最热的应该是[不蒜子](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

嘚瑟.png

原文来自阿星的博客:https://wanyaxing.com/blog/20180808165449.html

X