Вход Регистрация
Файл: system/lib/cache.class.php
Строк: 42
<?php
class CACHE {

    private 
$dir 'cache';

    public function 
__construct ($dir) {
        
$this->dir $dir;
        if (!
is_dir($this->dir)) {
            die(
'Папки для кеша не существует!');
        }
        else if (!
is_writable($this->dir)) {
            die(
'Нет прав на запись файла!');
        }
    }

    public function 
cache ($name$lifetime 86400) {
        
$cache $this->name($name);
        
        if (!
file_exists($cache)) {
            return 
false;
        }
        
        if (
filemtime($cache) < (time() - $lifetime)) {
            
$this->delete($cache);
            return 
false;
        }
        
        if (!
$cache file_get_contents($cache)) {
            return 
false;
        }
        
        return 
$cache;
    }

    public function 
save ($name$data$return true) {
        
$cache $this->name($nametrue);
        
        if (
trim($data)) {
            
file_put_contents($cache$data);
            
chmod($cache0644);
            if (
$return) {
                return 
$data;
            } else {
                echo 
$data;
            }
        } else {
            return 
false;
        }
    }

    public function 
delete ($name) {
        
$cache $this->name($name);
        
        if (
file_exists($cache)) {
            
unlink($cache);
            return 
true;
        }
        
        return 
false;
    }

    private function 
name ($name$create false) {
        
$hash md5($name);
        
$dir substr($hash05);
        
        if (
$create && !is_dir($this->dir.'/'.$dir)) {
            
mkdir($this->dir.'/'.$dir0755true);
        }
        
        return 
sprintf('%s/%s/%s'$this->dir$dir$hash);
    }
    
}
?>
Онлайн: 2
Реклама