1

嗨,我想知道如何做一个简单的访问计数器,将信息存储到文件中,格式可能类似于:日期 | # 访问,这只是一个 POC,我在这里尝试做的没什么复杂的,我只是想使用这个框架。

我试图使用文件助手字符串助手来读取文件,然后减去日期或拆分内容并使用循环来迭代和更新当前日期

这是到目前为止的代码......

命名空间库;

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';
        }
    }
}

任何想法,我需要知道如何拆分字符串,或者是否有人有更好的方法。

4

3 回答 3

3

我为此创建了一个模型:

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;
于 2012-12-08T19:14:13.240 回答
1

我认为最简单的解决方案是使用数据库。

无论如何,如果要写入文本文件,可以使用序列化将数组转换为可以保存到文件中的字符串,并使用反序列化将字符串转换回数组。

于 2012-12-08T19:13:25.910 回答
0

这是对我有用的代码:

function increment($id){
    $this->db->set('page_opens', 'page_opens+1', FALSE);
    $this->db->where('id', $id);
    $this->db->update('page');
}
于 2017-06-17T05:14:20.737 回答