什么是RSS源?看到这片文章的人相信都知道。自己博客首页不就是一个吗?

好吧,先来一个简单点的。直接就是死代码:详细如何使用就看RSS使用标准吧!

<?xml version = "1.0" encoding = "utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>
优惠信息
</title>
<link>
http://localhost/test/01.php
</link>
<description>
这里有最新优惠信息
</description>
</channel>
<item>
<title>
优惠信息1
</title>
<description>
这里有最新优惠信息1
</description>
</item>
<item>
<title>
优惠信息1
</title>
<description>
这里有最新优惠信息1
</description>
</item>
</rss>

效果:再火狐浏览器和ie显示正常,再google上显示不太好

这个简答实现了。来个复杂的吧,动态生成RSS

RSS模板

<?xml version="1.0" encoding="utf-8"?>
<!-- rss输出模板 用PHP动态制造channel,和item -->
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/"></rss>

动态生成:

<?php
/***
====笔记部分====
连接数据库,动态生成Rss feed 连数据库,取最新的10条商品,输出XML feed
***/ class feed {
public $title = ''; // channel的title
public $link = ''; // channel的link
public $description = ''; // channel的descrition;
public $items = array(); public $template = './feed.xml'; //xml模板
protected $dom = null;
protected $rss = null; public function __construct() {
$this->dom = new DomDocument('1.0','utf-8');
$this->dom->load($this->template);
$this->rss = $this->dom->getElementsByTagName('rss')->item(0);
} // 调用createItem,把全部的item节点都生成,再输出
public function display() {
$this->createChannel();
$this->addItem($this->items);
header('content-type: text/xml');
echo $this->dom->savexml();
} // 封装createChannel方法,用来创建Rss的唯一且必须的channel节点
protected function createChannel() {
$channel = $this->dom->createElement('channel');
$channel->appendChild($this->createEle('title',$this->title));
$channel->appendChild($this->createEle('link',$this->link));
$channel->appendChild($this->createEle('description',$this->description)); $this->rss->appendChild($channel);
} // 封装addItem方法,把全部的商品添加到RSS里面去
// $list是商品列表,是二维数据,每一行是一个商品
protected function addItem($list) {
foreach($list as $goods) {
$this->rss->appendChild($this->createItem($goods));
}
} // 封装一个方法,用来造item 比方link description等等
protected function createItem($arr) {
$item = $this->dom->createElement('item');
foreach($arr as $k=>$v) {
$item->appendChild($this->createEle($k,$v));
} return $item;
} // 封装一个方法,直接创建开如 <ele>some text</ele>这种节点
protected function createEle($name,$value) {
$ele = $this->dom->createElement($name);
$text = $this->dom->createTextNode($value);
$ele->appendChild($text); return $ele;
}
} $conn = mysql_connect('localhost','root','');
mysql_query('set names utf8',$conn);
mysql_query('use test'); $sql = 'select ver as title,content as description from smth order by id desc limit 8'; $rs = mysql_query($sql,$conn); $list = array();
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
} $feed = new feed();
$feed->title = '布尔商城';
$feed->link = 'http://localhost/bool';
$feed->description = '这是商城的优惠信息集合';
$feed->items = $list;
$feed->display();

生成效果。并查看源代码:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnV5aW5nZmVpODg4OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

XML制作RSS源的更多相关文章

  1. xml 制作 RSS 订阅源

    首先制作一个 RSS 模板,模板的文件名是 feed.xml,代码如下: <?xml version="1.0" encoding="utf-8"?> ...

  2. 利用Feed43为网站自制RSS源

    什么是RSS,它可以做什么 快2020年了,RSS日渐式微,我也是去年机缘巧合下才开始使用的,以前只是听说过.RSS,全称Really Simple Syndication,又称简易信息聚合(也叫聚合 ...

  3. 为网站加入Drupal星球制作RSS订阅源

    目前中文 Drupal 星球的版块还未成立,但大家的积极性挺高,不少站长都已经调整好自己的网站,生成了可供Drupal Planet 使用的RSS订阅源. 如果你也想让网站做好准备,可以不必再花上不少 ...

  4. 如何自己烧制全文RSS(打造自己RSS源)

    烧制RSS源 到Feed43注册一个账号,虽说不注册也能用,但是为了方便修改自己烧制的RSS,最好还是注册一个账号来管理 到主页点击Create new feed 输入网址点击reload 可以看到请 ...

  5. spring mvc: 生成RSS源

    spring mvc: 生成RSS源 准备: 从相同的maven存储库页面下载 Rome 库及其依赖项rome-utils,jdom和slf4j.和所需的依赖关系 <!-- rss源依赖 --& ...

  6. C#读取RSS源,并利用Solr索引

    折磨我几天的问题今天终于解决了,分享一下近期solr使用的一些经验. 本来是用nutch在爬取页面,可是客户需要爬取RSS,而且可以识别那些页面是通过RSS源抓取出来的.nutch虽然自带解析RSS的 ...

  7. 《机器学习实战》中贝叶斯分类中导入RSS源例子

    跟着书中代码往下写在这里卡住了,考虑到可能还会有其他同学也遇到了这样的问题,记下来分享. 先吐槽一下,相信大部分网友在这里卡住的主要原因是伟大的GFW,所以无论是软件FQ还是肉身FQ的小伙伴们估计是无 ...

  8. Spring MVC生成RSS源

    下面的示例演示如何使用Spring Web MVC框架生成RSS源. 首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建 ...

  9. Spring MVC-集成(Integration)-生成RSS源示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_rss_feed.htm 说明:示例基于Spring MVC 4.1.6. 以下示 ...

随机推荐

  1. java的关于流程结构做的几个案例

    最近在学习中,做了一个java的几个案例,主要是九九乘法口诀,实心菱形和空心菱形的算法,模拟彩票程序以及BMI的测试标准等小案例. 一:九九乘法表 /** * 九九乘法口诀 */ public sta ...

  2. go语言之进阶篇单向channel特点

    1.单向channel特点 package main //"fmt" func main() { //创建一个channel, 双向的 ch := make(chan int) / ...

  3. 项目总结——MVC+MongoDB实现文件上传

    在做项目的时候我们遇到了视频上传的问题.正式开始项目之前做了一个简单的Demo实现在MVC中视频文件的上 传,考虑到将视频放到MongoDB中上传和读取速度慢的问题,这次我们实现的文件上传是存储的路径 ...

  4. 我对android 软件栈了解

    android 软件栈如图所示: Android平台的核心是Linux内核,它负责设备驱动程序.资源访问.电源管理和完成其他操作系统的职责.提供的设备驱动程序包括显示器.照相机,键盘.WiFi.闪存. ...

  5. 很有用的mobile web application远程调试工具 weinre

    在移动web应用中,因为没有类似chrome和firebug的调试工具,调试起来比在PC上相对麻烦一些,有时候仅仅能重复进行改动比对,但使用weinre我们能够轻松做到远程调试的功能. 什么是wein ...

  6. 'Lock wait timeout exceeded; try restarting transaction'问题

    OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 原因很简单,太多错误,意外处理没有 ...

  7. 设置py文件的路径

    想在IDLE中打开py文件,需要设置PYTHONPATH环境变量: 设置后,就能在IDLE的Path Browser中看到sys.path了: 然后,就可以用import了

  8. CMenu and Dialog-based applications

    [问] Is it possible to put a menu in a dialog based application? How? [答] Yes, it is possible to add ...

  9. 准备Mahout所用的向量ApplesToVectors

    <strong><span style="font-size:18px;">/*** * @author YangXin * @info 准备Mahout所 ...

  10. AI单挑Dota 2世界冠军:被电脑虐哭……

    OpenAI的机器人刚刚在 Dota2 1v1 比赛中战胜了人类顶级职业玩家 Denti.以建设安全的通用人工智能为己任的 OpenAI,通过“Self-Play”的方式,从零开始训练出了这个机器人. ...