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 に答える