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

📄 php_text_cache.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
字号:
<?php/*** PHP Text Cache is a simple caching class for for saving/retrieving local copies of url data* @package php_text_cache* @version 0.3-pre* @copyright (C) 2004 John Heinstein. All rights reserved* @license  http://www.gnu.org/copyleft/lesser.html LGPL License* @author John Heinstein <johnkarl@nbnet.nb.ca>* @link http://www.engageinteractive.com/php_text_cache/ PHP Text Cache Home Page* PHP Text Cache is Free Software**/if (!defined('PHP_TEXT_CACHE_INCLUDE_PATH')) {	define('PHP_TEXT_CACHE_INCLUDE_PATH', (dirname(__FILE__) . "/"));}require_once(PHP_TEXT_CACHE_INCLUDE_PATH . 'php_http_connector.php');/*** A simple caching class for saving/retrieving local copies of url data** @package php_text_cache* @author John Heinstein <johnkarl@nbnet.nb.ca>*/class php_text_cache extends php_http_connector {	/** @var string The directory in which cached files are stored */	var $cacheDir;	/** @var int The amount time of time to wait before a cached file should be updated  */	var $cacheTime;	/** @var boolean True if an HTTP client should be used to establish the connection  */	var $doUseHTTPClient;	/** @var int Time in seconds to disconnect after attempting an http connection  */	var $httpTimeout;	/**	* Constructor	* @param string Directory in which to store the cache files	* @param int Expiry time for cache file (-1 signifies no expiry limit)	* @param int Time in seconds to disconnect after attempting an http connection	*/	function php_text_cache($cacheDir = './', $cacheTime = -1, $timeout = 0) {		$this->cacheDir = $cacheDir;		$this->cacheTime = $cacheTime;		$this->timeout = $timeout;	} //php_text_cache	/**	* Specifies the default timeout value for connecting to a host	* @param int The number of seconds to timeout when attempting to connect to a server	*/	function setTimeout($timeout) {		$this->timeout = $timeout;	} //setTimeout	/**	* Gets data from an url, or its cache file	*	* @param string The url of the data	* @return string The data at the specified url	*/	function getData($url) {		$cacheFile = $this->getCacheFileName($url);		if (is_file($cacheFile)) {			$fileStats = stat($cacheFile);			$lastChangeTime = $fileStats[9]; //mtime			$currTime = time();			if (($this->cacheTime != -1) && ($currTime - $lastChangeTime) > $this->cacheTime) { //get data from url				return $this->fromURL($url, $cacheFile);			}			else { //get data from file				return $this->fromCache($cacheFile);			}		}		else {			return $this->fromURL($url, $cacheFile);		}	} //getData	/**	* Given an url, returns the path to the cache file	*	* Uses an md5 hash of the url. This can be	* overridden if a different approach is required	*	* @param string The url of the data	* @return string The cache file name	*/	function getCacheFileName($url) {		return ($this->cacheDir . md5($url));	} //getCacheFileName	/**	* Establishes a connection, given an url	* @param string The url of the data	*/	function establishConnection($url) {		require_once(PHP_TEXT_CACHE_INCLUDE_PATH . 'php_http_client_generic.php');		$host = php_http_connection::formatHost($url);		$host = substr($host, 0, strpos($host, '/'));		$this->setConnection($host, '/', 80, $this->timeout);	} //establishConnection	/**	* Specifies whether an HTTP client should be used to establish a connection	* @param boolean True if an HTTP client is to be used to establish the connection	*/	function useHTTPClient($truthVal) {		// fixes bug identified here: sarahk.pcpropertymanager.com/blog/using-domit-rss/225/		//$this->doUseHTTPClient = truthVal;		$this->doUseHTTPClient = $truthVal;	} //useHTTPClient	/**	* Gets data from an url and caches a copy of the data	* @param string The url for the data	* @param string The cache file path	* @return string The contents of the url	*/	function fromURL($url, $cacheFile) {		$fileContents = '';		if ($this->httpConnection != null) {			$response =& $this->httpConnection->get($url);			if ($response != null) {				$fileContents = $response->getResponse();			}		}		else if ($this->doUseHTTPClient) {			$this->establishConnection($url);			$response =& $this->httpConnection->get($url);			if ($response != null) {				$fileContents = $response->getResponse();			}		}		else {			$fileContents = $this->fromFile($url);		}		//if file is empty, might need to establish an		//http connection to get the data		if (($fileContents == '') && !$this->doUseHTTPClient) {			$this->establishConnection($url);			$response =& $this->httpConnection->get($url);			if ($response != null) {				$fileContents = $response->getResponse();			}		}		if ($fileContents != '') {			require_once(PHP_TEXT_CACHE_INCLUDE_PATH . 'php_file_utilities.php');			php_file_utilities::putDataToFile($cacheFile, $fileContents, 'w');		}		return $fileContents;	} //fromURL	/**	* Get text from cache file	* @param string The file path	* @return string The text contained in the file, or an empty string	*/	function fromCache($cacheFile) {		return $this->fromFile($cacheFile);	} //fromCache	/**	* Get text from an url or file	* @param string The url or file path	* @return string The text contained in the url or file, or an empty string	*/	function fromFile($filename) {		if (function_exists('file_get_contents')) {			return @file_get_contents($filename);		}		else {			require_once(PHP_TEXT_CACHE_INCLUDE_PATH . 'php_file_utilities.php');			$fileContents =& php_file_utilities::getDataFromFile($filename, 'r');			return $fileContents;		}		return '';	} //fromFile} //php_text_cache?>

⌨️ 快捷键说明

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