zoukankan      html  css  js  c++  java
  • 【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," $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>

  • 相关阅读:
    <html>
    Java设计模式----策略模式
    Android之通过网络播放一首简单的音乐
    关于六度关系理论,我最终算出了自己与奥巴马的关系度数
    本地创建Duplicate数据库
    资源向导之 &quot;APUE&quot;
    WinCE 下编程须要IP地址控件咋办?
    LeetCode Anagrams My solution
    一起talk C栗子吧(第一百三十三回:C语言实例--创建进程时的内存细节)
    自己定义View Layout过程
  • 原文地址:https://www.cnblogs.com/hssbsw/p/3392920.html
Copyright © 2011-2022 走看看