php编写用文本txt数据库实现对来访IP地址的大概计数
看到多数IP计数代码是基于sql数据库的。想用文本数据库作为存储介质,达到部署简单,备份方便等效果。大概思路,不知是否能够实现,请教高手:ip.txt存储最后来访的IP地...
看到多数IP计数代码是基于sql数据库的。想用文本数据库作为存储介质,达到部署简单,备份方便等效果。
大概思路,不知是否能够实现,请教高手:
ip.txt存储最后来访的IP地址;
countdata.txt作为计数数据库;
---------------------------------------
当访客来访时,获取访客公网ip地址:
若ip.txt为空,则记录当前ip地址,计数+1;
若ip.txt不为空,比较来访ip与存储ip:
若相同,不增加计数;
若不同,更新ip.txt中为最后访问的ip地址,且计数+1。
-----------------------------------------
贴上其余代码方便高手补充重点:
<?php
if(file_exists("./countdata.txt"))
{
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
}
else
{
$fp=fopen("./countdata.txt","w");
$counter=0;
}
//当访客来访时,获取访客公网ip地址,请补充
//若ip.txt为空,则记录当前ip地址,请补充
//计数+1
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
fclose($fp);
$counter=intval($counter) + 1;
$fp=fopen("./countdata.txt","w");
fputs($fp,$counter);
fclose($fp);
echo 'document.write("'.$counter.'")';
//若ip.txt不为空,比较来访ip与存储ip,请补充:
//若相同,不增加计数,请补充
echo 'document.write("'.$counter.'")';
//若不同,更新ip.txt中为最后访问的ip地址,且计数+1,请补充
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
fclose($fp);
$counter=intval($counter) + 1;
$fp=fopen("./countdata.txt","w");
fputs($fp,$counter);
fclose($fp);
echo 'document.write("'.$counter.'")';
?>
如果您不方便直接贴出,可以选择以下联系方式:
百度HI:zhuzk66
邮箱:zhuzk66@gmail.com
请“注册好勒”看到后留个联系方式 展开
大概思路,不知是否能够实现,请教高手:
ip.txt存储最后来访的IP地址;
countdata.txt作为计数数据库;
---------------------------------------
当访客来访时,获取访客公网ip地址:
若ip.txt为空,则记录当前ip地址,计数+1;
若ip.txt不为空,比较来访ip与存储ip:
若相同,不增加计数;
若不同,更新ip.txt中为最后访问的ip地址,且计数+1。
-----------------------------------------
贴上其余代码方便高手补充重点:
<?php
if(file_exists("./countdata.txt"))
{
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
}
else
{
$fp=fopen("./countdata.txt","w");
$counter=0;
}
//当访客来访时,获取访客公网ip地址,请补充
//若ip.txt为空,则记录当前ip地址,请补充
//计数+1
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
fclose($fp);
$counter=intval($counter) + 1;
$fp=fopen("./countdata.txt","w");
fputs($fp,$counter);
fclose($fp);
echo 'document.write("'.$counter.'")';
//若ip.txt不为空,比较来访ip与存储ip,请补充:
//若相同,不增加计数,请补充
echo 'document.write("'.$counter.'")';
//若不同,更新ip.txt中为最后访问的ip地址,且计数+1,请补充
$fp=fopen("./countdata.txt","r");
$counter=fgets($fp);
fclose($fp);
$counter=intval($counter) + 1;
$fp=fopen("./countdata.txt","w");
fputs($fp,$counter);
fclose($fp);
echo 'document.write("'.$counter.'")';
?>
如果您不方便直接贴出,可以选择以下联系方式:
百度HI:zhuzk66
邮箱:zhuzk66@gmail.com
请“注册好勒”看到后留个联系方式 展开
4个回答
展开全部
好,分我要了,你需求是来路ip记录在ip.txt里,countdata.txt是访问次数对吧。但是你的需求我没看明白,ip.txt仅仅是用来存贮最后访问ip,而不是全部访问ip吗?那么countdata.txt也没啥意义了,仅仅是统计页面打开次数而已了。理解的有问题吗?
我的理解是是ip.txt存放所有ip地址,countdata.txt里存放ip和该ip对应的点击次数。其实也就需要countdata.txt一个就可以了,如果有新ip,存入,该ip访问次数+1,如果已存在改ip,ip访问次数+1。
如果只是存贮最后访问ip和总访问次数,那太简单了。等你回复,确定需求后给代码
我的理解是是ip.txt存放所有ip地址,countdata.txt里存放ip和该ip对应的点击次数。其实也就需要countdata.txt一个就可以了,如果有新ip,存入,该ip访问次数+1,如果已存在改ip,ip访问次数+1。
如果只是存贮最后访问ip和总访问次数,那太简单了。等你回复,确定需求后给代码
更多追问追答
追问
需求是做一个记录网页IP访问量的计数器。当一个IP地址访问时,先作判断,如果ip.txt里面没有,则更新ip.txt中为这个地址,且countdata.txt里面的值+1,显示当前值。如果ip.txt中已有存储,则不计数,显示当前值。
其实比较简单,就是要一个访问数量,ip.txt的作用是防止同一ip地址刷新造成计数不准确。不知ip.txt可否实现容纳多条ip记录,如果可以,那么2条即可,可以随着新ip的访问而更新其中相对旧的地址。
追答
晚上给你。。。。悲剧啊,完全不好操作啊。我感觉这代码别人看了会笑。把取到的ip赋给$ipnew就可以了。能用是能用,但是。。代码太长了,而且我感觉很混乱。只有一个ip.txt记录,如果没有这个ip,记录这个ip并给1,如果有,在对应ip点击基础上+1。如果你要pv,操作一下数组,把点击数加起来就可以了,如果要算ip,算ip个数就可以了。"-"这个间隔不是特别简洁,你可以把数组间换成换行之类的。嗯?你还加分了。那给你写点注释吧
0)//判断ip.txt是否为空
{
$contents = preg_replace('/\n|\r\n/','-',$content);
$contentsarr = explode("-",$contents);
$contentsarr = array_chunk($contentsarr,2);//对txt内容操作,变成二维数组
$num = count($contentsarr);
for($i=0;$i
展开全部
不错,不错,学习了。谢谢了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是想知道有多少个IP来访吗 php 有获取ip的 然后获取到 插入到数据库 或者插入到文件就行
追问
求完整代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用个数据库多简单,为什么要这么一个大圈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询