saiman
Новичок
ок.
значит немного другая задача. не касающаяся того о чем говорили раньше.
есть файл скажем index:
файл function.php:
проблема заключается в том что когда на странице index большое количество посетителей он обнуляется и записывается заново.
я так предполагаю что дело в том что запись в файл осуществляется не непосредственно в файле index а через функцию, но важна именно такая структура и решение типа (выполнять все в файле индекс не подходит). какие допущены прощеты??
-~{}~ 20.11.07 14:22:
простите, "он обнуляется" это я о текстовом файле в котором хранится стата
значит немного другая задача. не касающаяся того о чем говорили раньше.
есть файл скажем index:
Код:
include("functions.php");
$stats = new stats;
...............................
$stats->update();
Код:
class stats {
$d = opendir ("data/stats");
while ($file = readdir ($d))
{
if (stristr($file,'.dat'))
{
$st_day = str_replace('.dat','',$file);
$this->st_days[] = $st_day;
}
}
closedir ($d);
$this->today = max ($this->st_days);
}
function getstats($day_stamp = "all") {
if ($day_stamp == "all") {
$stamps = $this->st_days;
} else {
$stamps = array($day_stamp);
}
foreach ($stamps AS $stamp) {
$ff = fopen("data/stats/$stamp.dat","r");
$buf="";
while (!feof($ff)) {
$buf .= fgets($ff);
}
$ret[$stamp] = unserialize($buf);
fclose($ff);
}
return $ret;
}
function update(){
$today_stats = $this->getstats($this->today);
$dttm = time();
$curr_stats['dt'] = $dttm;
$curr_stats['data'] = $datas;
$today_stats[$this->today][] = $curr_stats;
$fu = fopen("data/stats/$this->today.dat","w+");
flock($fu, LOCK_EX);
fputs($fu,serialize($today_stats[$this->today]));
fflush ($fu);
flock($fu, LOCK_UN);
fclose($fu);
}
}
я так предполагаю что дело в том что запись в файл осуществляется не непосредственно в файле index а через функцию, но важна именно такая структура и решение типа (выполнять все в файле индекс не подходит). какие допущены прощеты??
-~{}~ 20.11.07 14:22:
простите, "он обнуляется" это я о текстовом файле в котором хранится стата