十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果你不需要记录每次访问的详细信息,可以不用记录每一次访问,那样数据库会非常庞大,而且统计也会很慢。
创新互联专业为企业提供和田网站建设、和田做网站、和田网站设计、和田网站制作等企业网站建设、网页设计与制作、和田企业网站模板建站服务,十载和田做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
简单的方法是就是只要一条记录,用四个字段分别累计本日、本周、本月、本年、总共的访问数,每次访问的时侯对这些字段加1,另外一个字段记录最后一次更新的日期,如果最后更新日期不是本日,就在加1前把本日字段设置为0,本周、本月、本年字段类似处理即可。
两种方式:
第一:使用一个文本文档
每次读取这个文本文档的数,然后加1,再覆盖写入
关键代码:
?php
$txt_db = 'jsb.txt';
$nums = file_get_contents($txt_db);
$nums++;
file_put_contents($txt_db,$nums);
?
第二:使用数据库,设计数据表,每次更新数据库。
个人建议:使用第一种方法。
原因:需求简单,所以尽可能少占资源,抗压力强。
先给储存相应文章的数据表增加一个记录访问量的字段。
可以每访问一次,字段数量加一,但是这样会不准确,因为只要刷新一下,就会记录一下。
为了防止上面的情况发生,可以记录访问者的IP地址,重复的IP地址访问,只记录一次。
但是,一个IP地址,只记录一次,也有问题,比如,一个局域网,多个访问者,共用一个IP地址,这样也会记录不准确。所以最好,一个IP地址一定时间内访问记录一次。这样相对好一点。
不过,即使记录IP地址,但是也有可能有恶意的用户通过切换IP,或者通过刷票软件来刷访问量。
?php
$ip = $_SERVER['REMOTE_ADDR'];
//循环对比数据表中储存的IP,如果IP存在,不再记录
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) 0){
//IP存在
}else{
//记录访问量
}
?
文/搬砖家(简书作者)
原文链接:
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。