<?php
namespace Home\Controller;
use Think\Controller;
use Think\Think;
/**
* @param string $cache_folder 缓文件夹
* @param int $cache_create_time 文件缓存时间
* @example $cache->read_cache() 读取缓存并输出
* @example $cache->create_cache() 建立缓存文件(放在文件未尾)
* @example $cache->list_file() 返回全部缓存文件列表
* @example $cache->del_file() 删除全部缓存文件
*/
class CacheController extends Controller {php
private $cache_folder = null; //cacher文件夹
private $wroot_dir = null; //站点目录
private $cacher_create_time = null; //cacher文件的创建时间
private $id = null;html
public function chushi($cache_foldername,$id) {
ob_start();
$this->wroot_dir = $_SERVER['DOCUMENT_ROOT'];
$this->cache_folder = $cache_foldername;
$this->cacher_create_time=C('CON_TIME');
$this->id=$id;
}缓存
public function read_cache() {
try {
if (self::create_folder($this->cache_folder)) {
self::get_cache(); //输出缓存文件信息
} else {
echo "缓存文件夹建立失败!";
return false;
}
} catch (Exception $e) {
echo $e;
return false;
}
}测试
//测试缓存文件夹是否存在
private function exist_folder($foler) {
if (file_exists($this->wroot_dir . "/" . $foler)) {
return true;
} else {
return false;
}
}this
//创建一个新的文件夹
private function create_folder($foler) {
if (!self::exist_folder($foler)) {
try {
mkdir($this->wroot_dir . "/" . $foler, 0777);
chmod($this->wroot_dir . "/" . $foler, 0777);
return true;
} catch (Exception $e) {
self::get_cache(); //输出缓存
return false;
}
return false;
} else {
return true;
}
}spa
//读取缓存文件
private function get_cache() {
$file_name = self::get_filename();
if (file_exists($file_name) && ((filemtime($file_name) + $this->cacher_create_time) > time())) {
$content = file_get_contents($file_name);
if ($content) {
echo $content;
ob_end_flush();
exit;
} else {
echo "文件读取失败";
exit;
}
}
}.net
//返回文件的名字
private function get_filename() {
$filename = $file_name = $this->wroot_dir . '/' . $this->cache_folder . '/' . $this->id . ".html";
return $filename;
}htm
//创建缓存文件
public function create_cache() {
$filename = self::get_filename();
if ($filename != "") {
try {
file_put_contents($filename, ob_get_contents());
return true;
} catch (Exception $e) {
echo "写缓存失败:" . $e;
exit();
}
return true;
}
}get
// 取得缓存中的全部文件
public function list_file() {
$path = $this->cache_folder;
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$path1 = $path . "/" . $file;
if (file_exists($path1)) {
$result[] = $file;
}
}
}
closedir($handle);
}
return $result;
}string
//删除缓存中的全部文件 public function del_file() { $path = $this->cache_folder; if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $path1 = $path . "/" . $file; if (file_exists($path1)) { unlink($path1); } } } closedir($handle); } return true; } }