ThinkPHP 3.2.3实现页面静态化功能的方法详解(2)

<?php // +---------------------------------------------------------------------- // | TOPThink [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2013 All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( ) // +---------------------------------------------------------------------- // | 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 文件名 * @param string $content 文件内容 * @return boolean */ public function put($filename,$content,$type=''){ $dir = dirname($filename); if(!is_dir($dir)) mkdir($dir,0755,true); if(false === file_put_contents($filename,$content)){ E(L('_STORAGE_WRITE_ERROR_').':'.$filename); }else{ $this->contents[$filename]=$content; return true; } } /** * 文件追加写入 * @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); include $_filename; } /** * 文件是否存在 * @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 $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]; } }

可以看到 get 和 put 方法所使用的方法是 file_get_contents() 和 file_put_contents() 。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/57a803ed26bfa383996fc242e7b81dfd.html