ThinkPHP ファイル キャッシュ コード共有
P ThinkPHP から取得したファイル キャッシュ コード。ここにはナンセンスはありません。友人が自分で注釈を読みます。?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/** * @desc ファイルキャッシュ */ クラスキャッシュ{ const C_FILE = '/ランタイム/'; プライベート $dir = ''; const EXT = '.tpl'; プライベート $ファイル名 = ''; パブリック関数 __construct($dir = ''){ $this->dir = $dir;
} /** * @desc ファイルキャッシュを設定します * @param string $key ファイル名 * @param unkonw $data キャッシュ データ * @param int $expire 有効期限 */ パブリック関数セット($key,$data,$expire = 0){ $this->ファイル名 = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; if(file_exists($this->ファイル名)){ $res = $this->get($key); if(md5($res) == md5(json_encode($data) ) ){ true を返す; } } if(!is_dir(ディレクトリ名($this->ファイル名))){ mkdir(ディレクトリ名($this->ファイル名),0777); }
$source = fopen($this->ファイル名,'w+'); fwrite($source,json_encode($data)); fclose($source); }
/** * @desc ファイルを取得します * @param string $key ファイル名 */ パブリック関数 get($key){ //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; if(!file_exists($this->ファイル名)){ return 'キャッシュ ファイルはもう存在しません'; }その他{ $res = file_get_contents($this->ファイル名); } $res を返す; } /** * @desc ファイルを削除します * @param string $key ファイル名 */ パブリック関数 del($key){ リンク解除($this->ファイル名); }
}
$data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana') ); $cache = 新しいキャッシュ(); $cache->set('cache',$data); //$cache->get('cache'); //$cache->del('cache');
|