Example of using the PHP browser count statistics class visit. class. php with text cache:
$ Visit = app: loader ('visit ');
$ Article_id = 20722;
$ Visit-> count ('article', $ article );
expires['article'] = 10;$this->tables['article'] = 'pcb_article';$this->expires['forum'] = 9;$this->tables['forum'] = 'pcb_forum';$this->expires['blog'] = 8;$this->tables['blog'] = 'pcb_blog';}public function count($channel, $id){$path = $this->get_cache_path($channel);$this->update($path, $channel, $id);}private function get_cache_expires($channel){$expires = isset($this->expires[$channel]) ? $this->expires[$channel] : 10;return $expires;}private function get_cache_path($channel){$time = time();$minute = date('H', $time) * 60 + date('i', $time);$expires = $this->get_cache_expires($channel);$path = SYS_PATH ."/data/cache/visit/{$channel}". ceil($minute / $expires) .".txt";return $path;}private function update($path, $channel, $id){$dir = dirname($path);if (!file_exists($dir))make_dir($dir);if (file_exists($path)){file_put_contents($path, ',' . $id, FILE_APPEND|LOCK_EX);}else{$table = $this->tables[$channel];$mysql = app::loader('mysql');$hand = opendir($dir);while (($file = readdir($hand))){if (preg_match("/{$channel}/", $file)){$visit = file_get_contents("{$dir}/{$file}");$array = explode(',', $visit);$array = array_count_values($array);unset($array['']);$sql = '';foreach ($array as $id => $visit){$sql .="UPDATE `{$table}` SET `visit` = `visit` + {$visit} WHERE `id` = {$id} LIMIT 1;";}if ($sql){$res = $mysql->executes($sql);if ($res)unlink($dir . '/' . $file);}unset($sql);}}file_put_contents($path, ',' . $id, LOCK_EX);}}}