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

📄 xml_domit_rss.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php/*** DOMIT! RSS is a DOM based RSS parser* @package domit-rss* @subpackage domit-rss-main* @version 0.51* @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/domitrss/ DOMIT! RSS Home Page* DOMIT! RSS is Free Software**/if (!defined('DOMIT_RSS_INCLUDE_PATH')) {	define('DOMIT_RSS_INCLUDE_PATH', (dirname(__FILE__) . DIRECTORY_SEPARATOR));}/** current version of DOMIT! RSS */define ('DOMIT_RSS_VERSION', '0.51');/** language constant */define('DOMIT_RSS_ELEMENT_LANGUAGE', 'language');/** copyright constant */define('DOMIT_RSS_ELEMENT_COPYRIGHT', 'copyright');/** managing editor constant */define('DOMIT_RSS_ELEMENT_MANAGINGEDITOR', 'managingeditor');/** webmaster constant */define('DOMIT_RSS_ELEMENT_WEBMASTER', 'webmaster');/** pubdate constant */define('DOMIT_RSS_ELEMENT_PUBDATE', 'pubdate');/** last build date constant */define('DOMIT_RSS_ELEMENT_LASTBUILDDATE', 'lastbuilddate');/** category constant */define('DOMIT_RSS_ELEMENT_CATEGORY', 'category');/** generator constant */define('DOMIT_RSS_ELEMENT_GENERATOR', 'generator');/** docs constant */define('DOMIT_RSS_ELEMENT_DOCS', 'docs');/** cloud constant */define('DOMIT_RSS_ELEMENT_CLOUD', 'cloud');/** ttl constant */define('DOMIT_RSS_ELEMENT_TTL', 'ttl');/** image constant */define('DOMIT_RSS_ELEMENT_IMAGE', 'image');/** rating constant */define('DOMIT_RSS_ELEMENT_RATING', 'rating');/** textinput constant */define('DOMIT_RSS_ELEMENT_TEXTINPUT', 'textinput');/** skiphours constant */define('DOMIT_RSS_ELEMENT_SKIPHOURS', 'skiphours');/** skipdays constant */define('DOMIT_RSS_ELEMENT_SKIPDAYS', 'skipdays');/** url constant */define('DOMIT_RSS_ELEMENT_URL', 'url');/** width constant */define('DOMIT_RSS_ELEMENT_WIDTH', 'width');/** height constant */define('DOMIT_RSS_ELEMENT_HEIGHT', 'height');/** guid constant */define('DOMIT_RSS_ELEMENT_GUID', 'guid');/** enclosure constant */define('DOMIT_RSS_ELEMENT_ENCLOSURE', 'enclosure');/** comments constant */define('DOMIT_RSS_ELEMENT_COMMENTS', 'comments');/** source constant */define('DOMIT_RSS_ELEMENT_SOURCE', 'source');/** name constant */define('DOMIT_RSS_ELEMENT_NAME', 'name');/** author constant */define('DOMIT_RSS_ELEMENT_AUTHOR', 'author');/** domain constant */define('DOMIT_RSS_ATTR_DOMAIN', 'domain');/** port constant */define('DOMIT_RSS_ATTR_PORT', 'port');/** path constant */define('DOMIT_RSS_ATTR_PATH', 'path');/** registerProcedure constant */define('DOMIT_RSS_ATTR_REGISTERPROCEDURE', 'registerProcedure');/** protocol constant */define('DOMIT_RSS_ATTR_PROTOCOL', 'protocol');/** url constant */define('DOMIT_RSS_ATTR_URL', 'url');/** length constant */define('DOMIT_RSS_ATTR_LENGTH', 'length');/** type constant */define('DOMIT_RSS_ATTR_TYPE', 'type');/** isPermaLink constant */define('DOMIT_RSS_ATTR_ISPERMALINK', 'isPermaLink');require_once(DOMIT_RSS_INCLUDE_PATH . 'xml_domit_rss_shared.php');/*** The base DOMIT! RSS document class** @package domit-rss* @subpackage domit-rss-main* @author John Heinstein <johnkarl@nbnet.nb.ca>*/class xml_domit_rss_document extends xml_domit_rss_base_document {	/**	* Constructor	* @param string Path to the rss file	* @param string Directory in which cache files are to be stored	* @param string Expiration time (in seconds) for the cache file	* @return Object A new instance of xml_domit_rss_document	*/	function xml_domit_rss_document($url = '', $cacheDir = './', $cacheTime = '3600') {	    $this->parser = 'DOMIT_RSS';		$this->xml_domit_rss_base_document($url, $cacheDir, $cacheTime);	} //xml_domit_rss_document	/**	* Performs initialization of the RSS document	*/	function _init() {		$total = $this->node->documentElement->childCount;		$itemCounter = 0;		$channelCounter = 0;		$categoryCounter = 0;		for ($i = 0; $i < $total; $i++) {			$currNode =& $this->node->documentElement->childNodes[$i];			$tagName = strtolower($currNode->nodeName);			switch ($tagName) {				case DOMIT_RSS_ELEMENT_ITEM:					$this->domit_rss_items[$itemCounter] = new xml_domit_rss_item($currNode);					$itemCounter++;					break;				case DOMIT_RSS_ELEMENT_CHANNEL:					$this->domit_rss_channels[$channelCounter] = new xml_domit_rss_channel($currNode);					$channelCounter++;					break;				case DOMIT_RSS_ELEMENT_CATEGORY:					$this->domit_rss_categories[$categoryCounter] = new xml_domit_rss_category($currNode);					$categoryCounter++;					break;				case DOMIT_RSS_ELEMENT_IMAGE:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_image($currNode);					break;				case DOMIT_RSS_ELEMENT_CLOUD:					$this->indexer[$tagName] = new xml_domit_rss_cloud($currNode);					break;				case DOMIT_RSS_ELEMENT_TEXTINPUT:					$this->indexer[$tagName] = new xml_domit_rss_textinput($currNode);					break;				case DOMIT_RSS_ELEMENT_TITLE:                case DOMIT_RSS_ELEMENT_LINK:                case DOMIT_RSS_ELEMENT_DESCRIPTION:                case DOMIT_RSS_ELEMENT_LANGUAGE:				case DOMIT_RSS_ELEMENT_COPYRIGHT:				case DOMIT_RSS_ELEMENT_MANAGINGEDITOR:				case DOMIT_RSS_ELEMENT_WEBMASTER:				case DOMIT_RSS_ELEMENT_PUBDATE:				case DOMIT_RSS_ELEMENT_LASTBUILDDATE:				case DOMIT_RSS_ELEMENT_GENERATOR:				case DOMIT_RSS_ELEMENT_DOCS:				case DOMIT_RSS_ELEMENT_TTL:				case DOMIT_RSS_ELEMENT_RATING:				case DOMIT_RSS_ELEMENT_SKIPHOURS:				case DOMIT_RSS_ELEMENT_SKIPDAYS:				    $this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_simpleelement($currNode);				    break;				default:				    $this->addIndexedElement($currNode);					//$this->indexer[$tagName] =& $currNode;			}		}		if ($itemCounter != 0) {			$this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_ITEMS] =& $this->domit_rss_items;		}		if ($channelCounter != 0) {			$this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_CHANNELS] =& $this->domit_rss_channels;		}		if ($categoryCounter != 0) {			$this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_CATEGORIES] =& $this->domit_rss_categories;		}		$this->handleChannelElementsEmbedded();	} //_init	/**	* Returns the current version of DOMIT! RSS	* @return int The current version of DOMIT! RSS	*/	function getVersion() {		return DOMIT_RSS_VERSION;	} //getVersion} //xml_domit_rss_document/*** Represents an RSS channel** @package domit-rss* @subpackage domit-rss-main* @author John Heinstein <johnkarl@nbnet.nb.ca>*/class xml_domit_rss_channel extends xml_domit_rss_elementindexer {	/** @var array A list of references to channel items */	var $domit_rss_items = array();	/** @var array A list of references to category items */	var $domit_rss_categories = array();	/**	* Constructor	* @param Object A DOM node containing channel data	* @param boolean True if channel elements are siblings of the channel rather than children	*/	function xml_domit_rss_channel(&$channel, $externalElements = false) {		$this->node =& $channel;		$this->rssDefinedElements = array('title','link','description','language','copyright',											'managingEditor','webmaster','pubDate','lastBuildDate',											'generator','docs','cloud','ttl','image', 'rating',											'textInput','skipHours','skipDays','domit_rss_channels',											'domit_rss_items','domit_rss_categories');		$this->_init();	} //xml_domit_rss_channel	/**	* Performs initialization of the RSS channel element	*/	function _init() {		$total = $this->node->childCount;		$itemCounter = 0;		$categoryCounter = 0;		for ($i = 0; $i < $total; $i++) {			$currNode =& $this->node->childNodes[$i];			$tagName = strtolower($currNode->nodeName);			switch($tagName) {				case DOMIT_RSS_ELEMENT_ITEM:					$this->domit_rss_items[$itemCounter] = new xml_domit_rss_item($currNode);					$itemCounter++;					break;				case DOMIT_RSS_ELEMENT_CATEGORY:					$this->domit_rss_categories[$categoryCounter] = new xml_domit_rss_category($currNode);					$categoryCounter++;					break;				case DOMIT_RSS_ELEMENT_IMAGE:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_image($currNode);					break;				case DOMIT_RSS_ELEMENT_CLOUD:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_cloud($currNode);					break;				case DOMIT_RSS_ELEMENT_TEXTINPUT:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_textinput($currNode);					break;				case DOMIT_RSS_ELEMENT_SKIPHOURS:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_skiphours($currNode);					break;				case DOMIT_RSS_ELEMENT_SKIPDAYS:					$this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_skipdays($currNode);					break;                case DOMIT_RSS_ELEMENT_TITLE:                case DOMIT_RSS_ELEMENT_LINK:                case DOMIT_RSS_ELEMENT_DESCRIPTION:                case DOMIT_RSS_ELEMENT_LANGUAGE:				case DOMIT_RSS_ELEMENT_COPYRIGHT:				case DOMIT_RSS_ELEMENT_MANAGINGEDITOR:				case DOMIT_RSS_ELEMENT_WEBMASTER:				case DOMIT_RSS_ELEMENT_PUBDATE:				case DOMIT_RSS_ELEMENT_LASTBUILDDATE:				case DOMIT_RSS_ELEMENT_GENERATOR:				case DOMIT_RSS_ELEMENT_DOCS:				case DOMIT_RSS_ELEMENT_TTL:				case DOMIT_RSS_ELEMENT_RATING:				    $this->DOMIT_RSS_indexer[$tagName] = new xml_domit_rss_simpleelement($currNode);				    break;				default:				    $this->addIndexedElement($currNode);					//$this->DOMIT_RSS_indexer[$tagName] =& $currNode;			}		}		if ($itemCounter != 0) {			$this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_ITEMS] =& $this->domit_rss_items;		}		if ($categoryCounter != 0) {			$this->DOMIT_RSS_indexer[DOMIT_RSS_ARRAY_CATEGORIES] =& $this->domit_rss_categories;		}	} //_init	/**	* Returns the title of the channel	* @return string The title of the channel, or an empty string	*/	function getTitle() {		return $this->getElementText(DOMIT_RSS_ELEMENT_TITLE);	} //getTitle	/**	* Returns the url of the channel	* @return string The url of the channel, or an empty string	*/	function getLink() {		return $this->getElementText(DOMIT_RSS_ELEMENT_LINK);	} //getLink	/**	* Returns a description of the channel	* @return string A description of the channel, or an empty string	*/	function getDescription() {		return $this->getElementText(DOMIT_RSS_ELEMENT_DESCRIPTION);	} //getDescription	/**	* Returns the language of the channel	* @return string The language of the channel, or an empty string	*/	function getLanguage() {		return $this->getElementText(DOMIT_RSS_ELEMENT_LANGUAGE);	} //getLanguage	/**	* Returns the copyright of the channel	* @return string The copyright of the channel, or an empty string	*/	function getCopyright() {		return $this->getElementText(DOMIT_RSS_ELEMENT_COPYRIGHT);	} //getCopyright	/**	* Returns the managing editor of the channel	* @return string The managing editor of the channel, or an empty string	*/	function getManagingEditor() {		return $this->getElementText(DOMIT_RSS_ELEMENT_MANAGINGEDITOR);	} //getManagingEditor	/**	* Returns the webmaster of the channel	* @return string The webmaster of the channel, or an empty string	*/	function getWebMaster() {		return $this->getElementText(DOMIT_RSS_ELEMENT_WEBMASTER);	} //getWebMaster	/**	* Returns the publication date of the channel	* @return string The publication date of the channel, or an empty string	*/	function getPubDate() {		return $this->getElementText(DOMIT_RSS_ELEMENT_PUBDATE);	} //getPubDate	/**	* Returns the last build date of the channel	* @return string The last build date of the channel, or an empty string	*/	function getLastBuildDate() {		return $this->getElementText(DOMIT_RSS_ELEMENT_LASTBUILDDATE);	} //getLastBuildDate	/**	* Returns the generator of the channel	* @return string The generator of the channel, or an empty string	*/	function getGenerator() {		return $this->getElementText(DOMIT_RSS_ELEMENT_GENERATOR);	} //getGenerator	/**	* Returns the docs of the channel	* @return string The docs of the channel, or an empty string	*/	function getDocs() {		return $this->getElementText(DOMIT_RSS_ELEMENT_DOCS);

⌨️ 快捷键说明

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