php 真实访问次数,PHP将访问次数写入文件下
用php实现简易的访问统计功能,计算网站的总访问量是多少,简单实用。php通过每次打开文本文件,获取文本中的数字,再进行加1后写入到文本中。因此,每次有访问就会进行累加访问数量来实现的简单访客次数的统计。
1.添加统计代码
首先在前台访问的Index控制器下加入以下代码,此段代码在高并发下也能正常使用
//$file = dirname(str_replace('\\','/',__FILE__)).'/tongji.db';表示为在当前文件夹下的tongji.db文件,要自己新建
//__FILE__为当前文件位于磁盘的绝对路径.如:G:/PHP/htdocs/www/Application/Home/Controller/tongji.db
//将访问次数写入tongji.db文件下
$file = dirname(str_replace('\\','/',__FILE__)).'/tongji.db';
//$data = unserialize(file_get_contents($file));
$fp=fopen($file,'r+');
$content='';
if (flock($fp,LOCK_EX)){
while (($buffer=fgets($fp,1024))!=false){
$content=$content.$buffer;
}
//unserialize(),此函数是将数据流反序列化成数组
$data=unserialize($content);
//设置记录键值
$total = 'total';
$month = date('Ym');
$today = date('Ymd');
$yesterday = date('Ymd',strtotime("-1 day"));
$tongji = array();
// 总访问增加
$tongji[$total] = $data[$total] + 1;
// 本月访问量增加
$tongji[$month] = $data[$month] + 1;
// 今日访问增加
$tongji[$today] = $data[$today] + 1;
//保持昨天访问
$tongji[$yesterday] = $data[$yesterday];
//保存统计数据,写入到tongji.db下
ftruncate($fp,0); // 将文件截断到给定的长度
rewind($fp); // 倒回文件指针的位置
//serialize(),此函数是将数组序列化成数据流
fwrite($fp, serialize($tongji));
flock($fp,LOCK_UN);
fclose($fp);
//输出数据,然后写入到system.php的配置文件中
$total = $tongji[$total];
$month = $tongji[$month];
$today = $tongji[$today];
$yesterday = $tongji[$yesterday]?$tongji[$yesterday]:0;
//写入conf下的system.php中可以用C()读取方便分配到模板使用
$path=$_SERVER['DOCUMENT_ROOT'].__ROOT__.'/Application/Common/Conf/system.php';
$config['TOTAL']=array('访问总数'=>$total,'本月'=>$month,'昨日'=>$yesterday,'今日'=>$today);
$data="<?php \r\n return " . var_export($config,true)."; \r\n ?>";
file_put_contents($path, $data);
2.创建可写入文件
在Admin和Home模块公用的Common\Conf\下 新建一个system.php文件,并在config.php中加入以下代码
3.写入配置文件
配置完成后,每次访问网页都会写入tongji.db文件中,利用文件锁进行高并发控制,再读取,然后写入到system.php的配置文件中
4.总结
就可以在模板中使用了
除非特殊声明,本站文章均为原创,转载请务必保留本文链接
php 真实访问次数,PHP将访问次数写入文件下相关推荐
- 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击[python爬虫]分类专栏进行倒序观看: [重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收 ...
- linux 访问日志ip排序,Linux通过日志文件统计IP访问次数排序
假设我的日志文件内容如下: 218.92.217.53 - - [22/Nov/2017:17:26:27 +0800] "GET /images/rand HTTP/1.0" 2 ...
- 查看及修改微软Edge浏览器用户数据保存位置(包括详细历史记录(页面停留时间,页面访问次数,最后访问时间,下载历史等),Cookie,书签等)
文章目录 Edge浏览器的用户数据大部分存储在本地的数据库文件中,目录如下 打开目录后大概有一下内容 由于是数据文件,所以需要用数据库管理软件打开,我这里用的是Navicat,打开后大概下面这样子 下 ...
- Hive分析函数之SUM,AVG,MIN和MAX OVER(PARTITION BY xxx order by xxx,用于求一段时间内截至到每天的累计访问次数、平均访问次数、最小访问次数、最大访问次
Hive分析函数之SUM,AVG,MIN和MAX OVER(PARTITION BY xxx order by xxx,用于求一段时间内截至到每天的累计访问次数.平均访问次数.最小访问 ...
- 访问数,每次访问页数,平均停留时间,跳出率
访问数,同一个 IP ,离开后再上一次,按 2 次算. 综合浏览量,所有页面点击访问总数. 每次访问页数,每次登陆网站平均点击的页面数( PV ). 网站平均停留时间,每次访问网站到离开经历的时间平均 ...
- Retrofit用Interceptor实现内外网接口自动切换访问(在内网IP访问失败的时候.访问外网接口)
Retrofit用Interceptor实现内外网接口自动切换访问(在内网IP访问失败的时候.访问外网接口) 主要项目里面需求有2个baseurl,必须要能够根据用户的网络状况进行baseurl的重新 ...
- android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...
我正在使用Netbeans和java开发我的android应用程序.当我使用模拟器时,我可以通过访问以下路径,data / data / com.example.helloandroid / data ...
- day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上/下造型,main方法,抽象类,接口,设计模式,异常,内部类
1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...
- 水平越权访问与垂直越权访问漏洞
目录 前言 越权访问漏洞 水平越权访问漏洞 垂直越权访问漏洞 防范措施 前言 电网机巡智能管控平台是XX省电力巡检智能管控平台,辅助全省无人机巡线作业工作顺利.高效开展.由于今年互联网出现了严重的安全 ...
最新文章
- git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
- 皮一皮:这是结婚还是华山论剑...
- 配置MYSQL基于GTID 主从复制详细解析及步骤
- 部署和调优 1.5 vsftp部署和优化-1
- 1.进程间的关系:终端,网络设备
- tomcat跳转报错_微信小程序开发:使用reLaunch跳转时报错的解决步骤
- jQuery插件scrollToTop 4行代码实现网站回到顶部
- IBM 安全部门 CTO:AI 必须被重新定义为“增强智能”
- jQuery向动态生成的内容添加事件响应(jquery live方法简介)
- Flask Flash
- 捡到iphone6怎么解锁_赛博朋克2077前期手枪用哪个好?2077节制结局及银杯节制解锁条件...
- 网络爬虫:Scrapy爬虫框架
- securecrt 远程映射端口
- java File 读取本地文件 增删改查
- mysql反三角函数,PostgreSQL中的函数之数学函数(正弦函数、反正弦函数、余弦函数、反余弦函数)...
- 2019年西南交大计算机专硕
- mapbox制作动态地图——storytelling(附html代码)
- 联想笔记本突然没声音了,但是音量却是打开得,F1亮着
- 背包问题之多重背包基础写法
- 解决低版本matlab打开高版本Matlab的.m文件时,出现中文乱码的问题。