嗨我想知道如何只做一个简单的访问计数器,将信息存储到一个文件格式可能是这样的:Date | #访问,这只是我在这里尝试做的一个POC,没有什么复杂的,我只是想用这个框架。
我尝试使用file helper和string helper来读取文件,然后减去日期或拆分内容并使用循环迭代并更新当前日期
这是迄今为止的代码......
命名空间库;
class VisitCounter {
function __construct() {
$this->load->library('file');
$this->load->helper('string');
}
function trackVisit(){
$file= read_file('./visits.txt');
if ( ! write_file('./visits.txt', $file)){
echo 'Unable to write the file';
}
}
}
任何想法,我需要知道如何分割字符串或者有人有更好的方法。
答案 0 :(得分:2)
我为此创建了一个模型:
class Count_model extends CI_Model{
function __construct(){
parent::__construct();
}
function increment(){
$this->db->set('total', 'total+1', FALSE);
$this->db->update('count');
}
function get_total(){
$query = $this->db->get('count');
if($query->num_rows()>0){
$row = $query->row();
return str_pad($row->total, 6 , "0", STR_PAD_LEFT);
} else {
return FALSE;
}
}
}
继承人的结构:
CREATE TABLE IF NOT EXISTS `count` (
`total` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`total`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 1 :(得分:1)
我认为最简单的解决方案是使用数据库。
无论如何,如果要写入文本文件,可以使用serialize将数组转换为可以保存到文件中的字符串,并使用unserialize将字符串转换回一个数组。
答案 2 :(得分:0)
这是对我有用的代码:
function increment($id){
$this->db->set('page_opens', 'page_opens+1', FALSE);
$this->db->where('id', $id);
$this->db->update('page');
}