简单的PHP唯一页面点击计数器在两次计数后停止?

时间:2014-09-23 16:19:01

标签: php unique ip-address counter pageviews

 <?php  

 $countfile = 'counter.txt';
 $ipfile = 'ip.txt';



 function countint(){
   $ip = $_SERVER['REMOTE_ADDR'];
   global $countfile , $ipfile;


   if (!in_array($ip, file($ipfile, FILE_IGNORE_NEW_LINES))) {
   $current = (file_exists($countfile)) ? file_get_contents($countfile) : 0;
   file_put_contents($ipfile, $ip."\n", FILE_APPEND);
    file_put_contents($countfile, ++$current);

   }



  }

  countint();
    $value =file_get_contents($countfile);

  ?>

这就是count.php函数以及两个文件ip.txt和counter.txt

计数未超过2次点击

两次点击后,它停止记录IP地址

3 个答案:

答案 0 :(得分:0)

试一试。我添加了elseifin_array条件elseif (in_array...

旁注:unique点击计数器在1之后停止是有意义的,否则它不会是唯一的。

如果你想继续计算它们,你可以试一试。如果它没有按预期工作,请告诉我,我会尝试修改它,或者完全删除答案。

<?php  

error_reporting(E_ALL);
ini_set('display_errors', 1);

 $countfile = 'counter.txt';
 $ipfile = 'ip.txt';

 function countint(){
   $ip = $_SERVER['REMOTE_ADDR'];
   global $countfile , $ipfile;


   if (!in_array($ip, file($ipfile, FILE_IGNORE_NEW_LINES))) {
   $current = (file_exists($countfile)) ? file_get_contents($countfile) : 0;
   file_put_contents($ipfile, $ip."\n", FILE_APPEND);

    file_put_contents($countfile, ++$current);

   }


   elseif (in_array($ip, file($ipfile, FILE_IGNORE_NEW_LINES))) {
   $current = (file_exists($countfile)) ? file_get_contents($countfile) : 0;
   file_put_contents($ipfile, $ip."\n", FILE_APPEND);

    file_put_contents($countfile, ++$current);

   }

  }

  countint();
    $value =file_get_contents($countfile);

?>

答案 1 :(得分:0)

如果你想要非独特的计数器

必须更改!in_array

<?php  

 $countfile = 'counter.txt';
 $ipfile = 'ip.txt';



 function countint(){
   $ip = $_SERVER['REMOTE_ADDR'];
   global $countfile , $ipfile;


    if (in_array($ip, file($ipfile, FILE_IGNORE_NEW_LINES))) {
    $current = (file_exists($countfile)) ? file_get_contents($countfile) : 0;
    file_put_contents($ipfile, $ip."\n", FILE_APPEND);
    file_put_contents($countfile, ++$current);

    }



   }

    countint();
     $value =file_get_contents($countfile);

     ?>

答案 2 :(得分:0)

<?php  

$countfile = 'counter.txt';
$ipfile = 'ip.txt';



 function countint(){
   $ip = $_SERVER['REMOTE_ADDR'];
   global $countfile , $ipfile;


  if (!in_array($ip, file($ipfile, FILE_IGNORE_NEW_LINES))) {
  $current = (file_exists($countfile)) ? file_get_contents($countfile) : 0;
  file_put_contents($ipfile, $ip."\n", FILE_APPEND);
   file_put_contents($countfile, ++$current);

  }



   }

   countint();
  $value =file_get_contents($countfile);

   ?>

适用于唯一的IP地址计数器....................   如果您为每个页面视图增加,请使用if else语句尝试上述答案............