【PHP】php+txt实现网页计数器(限IP统计方式和不限IP统计方式)

时间:2023-03-09 17:06:20
【PHP】php+txt实现网页计数器(限IP统计方式和不限IP统计方式)

一般的网页计数器制作实现思路:首先设定存放统计数据的文件(counter.txt)——读取文件中的内容存入字符串——自加操作——以写入方式打开文件写入数据——从文件中输出统计数据——关闭文件。

代码:

<?php
 $counter_fname='counter.txt';//动态获取需要统计的页面,并进行命名
 $counter=file_get_contents($counter_fname);  //将文件的内容读入到一个字符串中
 $counter+=0;
 $counter++;
  if($fp=fopen($counter_fname,'w')){
 fputs($fp,$counter);//输出统计数据

fclose($fp);
  }
  echo "document.writeln('<input type=text value=$counter>');";
?>

一、不限IP统计方式即只要刷新页面统计数就会增加

实现思路:首先设定存放统计数据的文件(counter[i].txt)是动态获取的即可以实现多页面统计——读取文件中的内容存入字符串——自加操作——以写入方式打开文件写入数据——从文件中输出统计数据——关闭文件。

代码:

counter.php页面:

<?php
 $counter_fname='counter'.$_REQUEST[id].'.txt';//动态获取需要统计的页面,并进行命名
 $counter=file_get_contents($counter_fname);
 $counter+=0;
 $counter++;
  if($fp=fopen($counter_fname,'w')){
 fputs($fp,$counter);fclose($fp);
  }
  echo "document.writeln('<input type=text value=$counter>');";
?>

访问页面:jsq.php   代码: <script type=text/javascript src=counter_ip.php?id=1></script>

二、限IP统计方式即只有不同ip访问才会被记录为统计

实现思路:首先设定存放统计数据的文件(counter[i].txt)是动态获取的即可以实现多页面统计——在设定存放统计ip数据的文件(ip[i].txt)是动态获取的——读取文件中的内容存入字符串——比较获取的ip是否已经存在于ip文件中,未存在重新写入自加操作——更新ip——以写入方式打开文件写入数据——从文件中输出统计数据——关闭文件。

counter_ip.php页面代码:

<?php
 $counter_fname='counter'.$_REQUEST["id"].'.txt';//动态获取需要统计的页面,并进行命名
  $counter_ips='ip'.$_REQUEST["id"].'.txt';//
 $counter=file_get_contents($counter_fname);
 $counter+=0;
//判断本IP是否曾经访问过
$ips=preg_split("/\s+/",file_get_contents($counter_ips));
$ip=$_SERVER["REMOTE_ADDR"];
if(!in_array($ip,$ips)){//倘若该IP不在ip文件夹中,就新增加访问数据
//更新计数器
 $counter++;
  if($fp=fopen($counter_fname,'w')){
 fputs($fp,$counter);fclose($fp);
  }
//更新访问IP
if($fp=fopen($counter_ips,'a')){
 fputs($fp,"\n$ip");fclose($fp);
}
}
  echo "document.writeln('<input type=text value=$counter>');";
?>

访问页面:jsq_ip.php   代码: <script type=text/javascript src=counter_ip.php?id=2></script>