>백엔드 개발 >PHP 튜토리얼 >ThinkPHP 파일 캐싱 클래스에 대한 코드

ThinkPHP 파일 캐싱 클래스에 대한 코드

不言
不言원래의
2018-06-11 10:33:232709검색

이 글은 ThinkPHP에서 가져온 파일 캐싱 클래스 코드를 공유합니다. 필요한 경우 누구나 참고할 수 있는 매우 실용적이고 효율적인 코드입니다.

ThinkPHP의 파일 캐싱 코드에서 따온 건데, 여기에는 별 말도 안 되는 내용이 많을 것입니다. 여러분, 그냥 댓글을 직접 읽어보세요.

<?php
  /**
   * @desc 文件缓存
   */
  class Cache{
    const C_FILE = &#39;/Runtime/&#39;;
    private $dir = &#39;&#39;;
    const EXT = &#39;.tpl&#39;;
    private $filename = &#39;&#39;;
    public function __construct($dir = &#39;&#39;){
      $this->dir = $dir;
      
    }
    /**
     *  @desc 设置文件缓存
     *  @param string $key 文件名 
     *  @param unkonw $data 缓存数据
     *  @param int  $expire 过期时间
     */
    public function set($key,$data,$expire = 0){
      $this->filename =   dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(file_exists($this->filename)){
        $res = $this->get($key);
        if(md5($res) == md5(json_encode($data) ) ){
          return true;
        }
      }
      if(!is_dir(dirname($this->filename))){
        mkdir(dirname($this->filename),0777);
      }
      
      $source = fopen($this->filename,&#39;w+&#39;);
      fwrite($source,json_encode($data));
      fclose($source);
    }
    
    /**
     *  @desc 获取文件
     * @param string $key 文件名
     */
    public function get($key){
      //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(!file_exists($this->filename)){
        return &#39;缓存文件已经不存在&#39;;
      }else{
        $res = file_get_contents($this->filename);
      }
      return $res;
    }
    /**
     *  @desc 删除文件
     * @param string $key 文件名
     */
    public function del($key){
      unlink($this->filename);
    }
    
  }
  
  $data = array(&#39;name&#39;=>&#39;song&#39;,&#39;age&#39;=>20,&#39;sex&#39;=>&#39;man&#39;,&#39;favority&#39;=>array(&#39;apple&#39;,&#39;banana&#39;));
  $cache = new Cache();
  $cache->set(&#39;cache&#39;,$data);
  //$cache->get(&#39;cache&#39;);
  //$cache->del(&#39;cache&#39;);

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장사항:

thinkphp는 모델 일반 데이터 편집을 사용하여 추가 및 삭제

ThinkPhp 프레임워크 양식 유효성 검사 및 Ajax 유효성 검사 문제에 대한 분석

위 내용은 ThinkPHP 파일 캐싱 클래스에 대한 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.