[李景山php]thinkphp核心源码注释|File.class.php

来源:互联网 发布:有哪些动画培训班知乎 编辑:程序博客网 时间:2024/06/05 11:13
<?php// +----------------------------------------------------------------------// | TOPThink [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2013 http://topthink.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <liu21st@gmail.com>// +----------------------------------------------------------------------namespace Think\Storage\Driver;use Think\Storage;// 本地文件写入存储类//class File extends Storage{    private $contents=array();    /**     * 架构函数     * @access public     * 清空了     */    public function __construct() {    }    /**     * 文件内容读取     * @access public     * @param string $filename  文件名     * @return string          */    public function read($filename,$type=''){        return $this->get($filename,'content',$type);    }// 外包 读取文件    /**     * 文件是否存在     * @access public     * @param string $filename  文件名     * @return boolean     */    public function has($filename,$type=''){        return is_file($filename);    }// 外包 读取文件    /**     * 文件删除     * @access public     * @param string $filename  文件名     * @return boolean     */    public function unlink($filename,$type=''){        unset($this->contents[$filename]);        return is_file($filename) ? unlink($filename) : false;    }// 重写了系统函数    /**     * 文件追加写入     * @access public     * @param string $filename  文件名     * @param string $content  追加的文件内容     * @return boolean     */    public function append($filename,$content,$type=''){        if(is_file($filename)){            $content =  $this->read($filename,$type).$content;        }        return $this->put($filename,$content,$type);    }// 这里 这个 就是读写完成    /**     * 加载文件     * @access public     * @param string $filename  文件名     * @param array $vars  传入变量     * @return void     */    public function load($_filename,$vars=null){        if(!is_null($vars)){            extract($vars, EXTR_OVERWRITE); //EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。        }        include $_filename;    }// 其实 可以 加载到 文件 到 加载了    // 加载变量    /**     * 读取文件信息     * @access public     * @param string $filename  文件名     * @param string $name  信息名 mtime或者content     * @return boolean     */    public function get($filename,$name,$type=''){        if(!isset($this->contents[$filename])){ // 电影            if(!is_file($filename)) return false;            $this->contents[$filename]=file_get_contents($filename);        }        $content=$this->contents[$filename]; // 这里的东西        $info   =   array( // 获取了信息            'mtime'     =>  filemtime($filename),            'content'   =>  $content        );        return $info[$name];    }// 返回了    //echo filemtime("test.txt");    //echo "Last modified: ".date("F d Y H:i:s.",filemtime("test.txt"));    /**     * 文件写入     * @access public     * @param string $filename  文件名     * @param string $content  文件内容     * @return boolean     */    public function put($filename,$content,$type=''){        $dir         =  dirname($filename);// 获取路径        if(!is_dir($dir)){// 生成文件            mkdir($dir,0777,true);        }        if(false === file_put_contents($filename,$content)){ // 获取 了 数据有问题啊            E(L('_STORAGE_WRITE_ERROR_').':'.$filename);        }else{            $this->contents[$filename]=$content;// 删除了 问题            return true;        }    }// 结束}// 总结:// 读、写、删除、追加、加载。
0 0
原创粉丝点击