RSS(简易信息聚合,也叫聚合内容)是一种描述和同步网站内容的格式。使用RSS订阅能让用户更快地获取网站最新内容,也有利与网站内容更广泛的传播。目前RSS使用最广泛的是XML文件格式。

创建RSS源(服务端):

1、主文件rss.php:

require("rss_class.php");

$host = 'localhost'; //数据库地址

$user = 'root'; //帐号

$pass = '123456; //密码

$db = 'data'; //数据库名

$con = mysql_connect($host,$user,$pass);

if (!$con) die('Could not connect:'.mysql_error());

mysql_select_db($db,$con);

mysql_query('SET NAMES gb2312'); //编码

$result = mysql_query("select * from news",$con);

$rss = new UniversalFeedCreator();

$rss->title = "title"; //rss标题

$rss->link = "http://www.zhixing123.cn/"; //rss源地址

$rss->description = "description"; //rss描述

while($rs=mysql_fetch_array($result)){

$item = new FeedItem();

$item->title =$rs['title']; //标题字段$item->link = 'http://www.zhixing123.cn/post'.$rs['id']; //id标识字段

$item->description =$rs['description']; //描述字段

$rss->addItem($item);

}

$rss->saveFeed("RSS2.0", "rss.xml"); //输出xml

?>

2、类文件rss_class.php:

define("TIME_ZONE","");

define("FEEDCREATOR_VERSION", //generator

class FeedItem extends HtmlDescribable {

var $title, $description, $link;

var $author, $authorEmail, $image, $category, $comments, $guid, $source, $creator;

var $date;

var $additionalElements = Array();

}

class FeedImage extends HtmlDescribable {

var $title, $url, $link;

var $width, $height, $description;

}

class HtmlDescribable {

var $descriptionHtmlSyndicated;

var $descriptionTruncSize;

function getDescription() {

$descriptionField = new FeedHtmlField($this->description);

$descriptionField->syndicateHtml = $this->descriptionHtmlSyndicated;

$descriptionField->truncSize = $this->descriptionTruncSize;

return $descriptionField->output();

}

}

class FeedHtmlField {

var $rawFieldContent;

var $truncSize, $syndicateHtml;

function FeedHtmlField($parFieldContent) {

if ($parFieldContent) {

$this->rawFieldContent = $parFieldContent;

}

}

function output() {

if (!$this->rawFieldContent) {

$result = "";

} elseif ($this->syndicateHtml) {

$result = "rawFieldContent."]]>";

} else {

if ($this->truncSize and is_int($this->truncSize)) {

$result = FeedCreator::iTrunc(htmlspecialchars($this->rawFieldContent),$this->truncSize);

} else {

$result = htmlspecialchars($this->rawFieldContent);

}

}

return $result;

}

}

class UniversalFeedCreator extends FeedCreator {

var $_feed;

function _setFormat($format) {

switch (strtoupper($format)) {

case "2.0":

// fall through

case "RSS2.0":

$this->_feed = new RSSCreator20();

break;

case "0.91":

// fall through

case "RSS0.91":

$this->_feed = new RSSCreator091();

break;

default:

$this->_feed = new RSSCreator091();

break;

}

$vars = get_object_vars($this);

foreach ($vars as $key => $value) {

if (!in_array($key, array("_feed", "contentType", "encoding"))) {

$this->_feed->{$key} = $this->{$key};

}

}

}

function createFeed($format = "RSS0.91") {

$this->_setFormat($format);

return $this->_feed->createFeed();

}

function saveFeed($format="RSS0.91", $filename="", $displayContents=true) {

$this->_setFormat($format);

$this->_feed->saveFeed($filename, $displayContents);

}

function useCached($format="RSS0.91", $filename="", $timeout=3600) {

$this->_setFormat($format);

$this->_feed->useCached($filename, $timeout);

}

}

class FeedCreator extends HtmlDescribable {

var $title, $description, $link;

var $syndicationURL, $image, $language, $copyright, $pubDate, $lastBuildDate, $editor, $editorEmail, $webmaster, $category, $docs, $ttl, $rating, $skipHours, $skipDays;

var $xslStyleSheet = "";

var $items = Array();

var $contentType = "application/xml";

var $encoding = "gb2312"; //编码

var $additionalElements = Array();

function addItem($item) {

$this->items[] = $item;

}

function clearItem2Null() {

$this->items = array();

}

function iTrunc($string, $length) {

if (strlen($string)<=$length) {

return $string;

}

$pos = strrpos($string,".");

if ($pos>=$length-4) {

$string = substr($string,0,$length-4);

$pos = strrpos($string,".");

}

if ($pos>=$length*0.4) {

return substr($string,0,$pos+1)." ...";

}

$pos = strrpos($string," ");

if ($pos>=$length-4) {

$string = substr($string,0,$length-4);

$pos = strrpos($string," ");

}

if ($pos>=$length*0.4) {

return substr($string,0,$pos)." ...";

}

return substr($string,0,$length-4)." ...";

}

function _createGeneratorComment() {

return "\n";

}

function _createAdditionalElements($elements, $indentString="") {

$ae = "";

if (is_array($elements)) {

foreach($elements AS $key => $value) {

$ae.= $indentString."$value$key>\n";

}

}

return $ae;

}

function _createStylesheetReferences() {

$xml = "";

if (isset($this->cssStyleSheet)) $xml .= "<?xml-stylesheet href=\"".$this->cssStyleSheet."\" type=\"text/css\"?>\n";

if (isset($this->xslStyleSheet)) $xml .= "<?xml-stylesheet href=\"".$this->xslStyleSheet."\" type=\"text/xsl\"?>\n";

return $xml;

}

function createFeed() {

}

function _generateFilename() {

$fileInfo = pathinfo($_SERVER["PHP_SELF"]);

return substr($fileInfo["basename"],0,-(strlen($fileInfo["extension"])+1)).".xml";

php 生成rss源,网站RSS源自动创建及调用方法(PHP版)相关推荐

  1. 织梦dedecms网站栏目增加英文名称及调用方法

    有时候网站需要中英文导航,而又想保留导航的hover中的样式,那么就需要进行织梦栏目的二次开发了.网上搜索了很多方法,基本都是负责人家的方法,残缺不全的.今天我整理,并亲自操作和修改,给大家完整奉献代 ...

  2. php如何生成一年的日历表_PHP简单创建日历的方法

    本文实例讲述了PHP简单创建日历的方法.分享给大家供大家参考,具体如下: function build_calendar($month,$year) { // Create array contain ...

  3. excel教程的rss源_在Excel工作表上显示RSS源

    excel教程的rss源 As you've heard, Google Reader will be disappearing in a few months <sigh>, and w ...

  4. 怎么打开网卡rss_RSS 进阶篇:Huginn - 真·为任意网页定制 RSS 源(PhantomJs 抓取)...

    定制网页RSS源主要有FEED43和Huginn两种方法. FEED43:简单免费,六小时抓取一次,每次抓取20条静态页面.使用攻略- RSS 入门篇:FEED43&FeedEx-为静态网页定 ...

  5. [编]在Web站点中创建和使用Rss源

    在Web站点中创建和使用Rss源 主要参考: Creating Rss Feeds For Your Web Site Consuming Rss Feeds On Your Web Site 术语表 ...

  6. 在Web站点中创建和使用Rss源

     主要参考: Creating Rss Feeds For Your Web Site Consuming Rss Feeds On Your Web Site 术语表 tag:标签 markup ...

  7. 创建rss源_如何为任何网站查找或创建RSS源

    创建rss源 If you're still a dedicated RSS user, you've no doubt noticed some sites no longer go out of ...

  8. RSS阅读——在繁杂的社会接受纯粹的信息 RSS介绍与RSS订阅源分享

    在互联网信息大爆炸的背景下,人们需要一种全新的知识获取与整理方法.当我们面对繁杂的信息时,一种全新的技术诞生了 RSS(简易信息聚合技术)的诞生与发展 RSS技术的诞生 RSS技术是由Netscape ...

  9. rss源搜索_如何使用Google图像搜索,RSS源和更多自定义墙纸

    rss源搜索 If you're looking for a free but powerful solution to automate your Windows wallpaper switchi ...

最新文章

  1. kaggle项目:基于随机森林模型的心脏病患者预测分类!
  2. Springboot项目因为kackson版本问题启动报错解决方案
  3. android 输入过滤,Android Studio添加日志过滤方式
  4. phalcon系列(1) hello phalcon
  5. SAP存货后续调整总结
  6. 流量银行与阿里联手放大招 1毛钱换1块钱
  7. 从0开始学Java——JSPServlet——HttpServletRequest相关的几个路径信息
  8. Python random 模块 - Python零基础入门教程
  9. python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)
  10. Java 2实用教程(第五版)
  11. 看故事也能长知识,CPU的工作原理原来这么简单!
  12. logistic回归详解
  13. GIS历史概述与WebGis应用开发技术浅解
  14. 模拟电路仿真LTspice(3):三极管共发射极放大电路
  15. DSP28335笔记 ———— 中断系统 之 外部中断
  16. CSS box-shadow 详解
  17. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)
  18. fifo的rdata_FIFO的使用总结
  19. 雅思作文模板.html,雅思写作模板必看范文
  20. 技嘉 RTX 4090 已在香港发售,距正式上市两周

热门文章

  1. 米兔机器人 编程案例_米兔积木机器人改装双层立体车库,通过编程变得更智能...
  2. 游戏行话面面观:解读游戏专业术语
  3. MFC中画图重影、覆盖的问题
  4. CSS 实现自动等分圆效果
  5. 1146:统计立方数
  6. Java选择题(二十五)
  7. DNS修复,模拟修复网络连接(原)
  8. 描述cookie隔离的好处_综合一
  9. 线性表(单链表)实验
  10. Python使用xlwings创建新的Excel工作簿文件