Alex_prog
Новичок
Подсчет уникальных посетителей - как?
Добрый день.
Задача такая: посетитель заходит на сайт, необходимо определить - был ли этот посетитель на этом сайте в течении прошедших 24 часов или нет.
Уникальноть основывается на IP посетителя, а не на куке. MySQL использоваться не должен.
Если ли какие-нибудь готовые решения для такой задачи? Я сам это решил топорным методом, но подозреваю это далеко не идеал :
- то есть тупо пишу в файл chr() от каждой триады IP посетителя, а потом, при проверке, считываю по частям файл и ищу там эту IP strpos'ом. При большом количестве посетителей (скажем 200к) файл с IP раздувается до 1Мб, соответсвенно искать в нем подстроку длиной 4 байта - дело затратное.
Вобщем, можно ли все это усовершенствовать?
Добрый день.
Задача такая: посетитель заходит на сайт, необходимо определить - был ли этот посетитель на этом сайте в течении прошедших 24 часов или нет.
Уникальноть основывается на IP посетителя, а не на куке. MySQL использоваться не должен.
Если ли какие-нибудь готовые решения для такой задачи? Я сам это решил топорным методом, но подозреваю это далеко не идеал :
PHP:
function Is_unique(){
if(!file_exists($this->file)) return true;
$str="";
$numbers=explode(".",$this->userIP);
foreach ($numbers as $n) $str.=chr($n);
$handle = fopen($this->file, "rb+");
while (!feof($handle)) {
$buffer = fgets($handle, 20480);
$pos = strpos($buffer, $str);
if ($pos === false) continue;
else return false;
}
fclose($handle);
return true;;
}
function Add_unique(){
$str="";
$numbers=explode(".",$this->userIP);
foreach ($numbers as $n) $str.=chr($n);
$handle = fopen($this->file, "ab+");
fwrite($handle,$str."-");
fclose($handle);
@chmod($this->file,0777);
}
Вобщем, можно ли все это усовершенствовать?

