⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.cacher.php

📁 太烦了
💻 PHP
字号:
<?php/** * Class for caching files that are stored in DB */class Cacher{    // Path where cached files are stored    var $_docpath;    var $_fullpath;    var $_site;    var $_db;        // specifics about the image source    var $_table;    var $_field;    var $_id;    var $_skin;	// id of skin    // Error during execution    var $_error;    function Cacher( $fullpath = '', $docpath = '', $site = '' ) {    	// path relative to document root        $this->_docpath = $docpath;        // fully unqualified path on server        $this->_fullpath = $fullpath;        $this->_error = array('');		// the current website key        $this->_site = $site;    }	/**	 * Retrieve either the path to the cached image, either as a fully unqualified path	 * or relative to the document root	 */    function path( $type = 'full', $ext = '.jpg' ) {    	if ( $type == 'full' )			$path = $this->_fullpath;    	else if ( $type == 'doc' )    		$path = $this->_docpath;    		    	$skinSiteKey = $this->_db->getOne( 'select site_key from '.$this->_table." where id='{$this->_id}'" );    	return $path . '/' . $skinSiteKey . '_' . $this->_table . '_' . $this->_field . '_' . $this->_id . '_' . $this->_skin . $ext;    }	/**	 * Write the data to the cache	 */    function cache( $data ) {    	if ( $data )   			return fwrite( fopen( $this->path( 'full' ), 'wb' ), $data );    	return false;    }        /**     * Remove the specified image from the cache     */    function remove( $ext = '.jpg' ) {		$file = $this->path( 'full' );		if ( file_exists( $file ) )			@unlink( $file );    }    /**     * Clear all files from the cache directory. If $prefix is specified, then only     * the cached files that begin with $prefix are removed. If $suffix is specified,     * then only the cached files that end with $suffix are removed (good for     * removing images associated with a particular skin.     */	function clear( $prefix = '', $suffix = '' ) {		$dir = $this->_fullpath;		if ( !$dir )			$dir = 'temp';		$fd = @opendir($dir);		$file_array = array();		while ( ( $part = @readdir($fd)) == true ) {			if ( $part != "." && $part != ".." ) {				// if the file prefix and suffix is specified, then the				// file name must match both prefix & suffix to be removed				if ( $prefix != '' ) {					//echo substr( $part, 0, strlen( $prefix ) ) . ' =? ' . $prefix . "\n";					if ( substr( $part, 0, strlen( $prefix ) ) != $prefix ) {						continue;					}				}				if ( $suffix != '' ) {					//echo substr( $part, strlen( $part ) - strlen( $suffix ) ) . ' =? ' . $suffix . "\n";					if ( substr( $part, strlen( $part ) - strlen( $suffix ) ) != $suffix ) {						continue;					}				}				$file_array[] = $part;			}		}		if ( $fd == true )			@closedir($fd);		foreach( $file_array as $curfile ) {			if ( file_exists( $dir . '/' . $curfile ) )				@unlink( $dir . '/' . $curfile );		}	}    function _dieError( $message ) {        $this->_error = $message;        return 0;    }	/**	 * Determine if the image in question is cached or not	 */    function cached() {    	return file_exists( $this->path( 'full' ) );    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -