[英]Simple PHP Unique page hit counter stops after two counts?
<?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地址
試試看。 我添加了elseif
和in_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);
?>
如果您想要非唯一計數器,則必須將!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);
?>
<?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語句........ .....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.