php制作基于xml的RSS订阅源功能示例


Posted in PHP onFebruary 08, 2017

本文实例讲述了php制作基于xml的RSS订阅源功能。分享给大家供大家参考,具体如下:

首先制作一个 RSS 模板,模板的文件名是 feed.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/"></rss>

再就是用php文件从数据库读取数据并生成 RSS 文件,这里用一个数组模拟从数据库读取的数据:

<?php 
class Rss{
  protected $dom = null;
  protected $temp = './feed.xml';
  protected $rss = null;
  protected $title = '';
  protected $desc = '';
  protected $link = '';
  public function __construct(){
    $this->title = '物理学';
    $this->desc = '现代物理学';
    $this->link = 'http://mysql/rss.php';
    $this->dom = new DOMDocument('1.0','utf-8');
    $this->dom->load($this->temp);
    $this->rss = $this->dom->getElementsByTagName('rss')->item(0);
  }
  public function feed($arr){
    $this->createChannel();
    $channel = $this->dom->getElementsByTagName('channel')->item(0);
    foreach ($arr as $v){
      $channel->appendChild($this->createItem($v));
    }
    header('content-type:text/xml');
    echo $this->dom->savexml();
  }
  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->desc));
    $this->rss->appendChild($channel);
  }
  protected function createItem($arr){
    $item = $this->dom->createElement('item');
    foreach($arr as $k => $v){
      $item->appendChild($this->createEle($k,$v));
    }
    return $item;
  }
  protected function createEle($name,$value){
    $e=$this->dom->createElement($name);
    $t=$this->dom->createTextNode($value);
    $e->appendChild($t);
    return $e;
  }
}
$arr = array(
  array(
    'title'=>'牛顿力学',
    'link'=>'1',
    'description'=>'牛顿力学'
  ),
  array(
    'title'=>'相对论',
    'link'=>'1',
    'description'=>'爱因斯坦的相对论'
  )
);
$rss = new Rss;
$rss->feed($arr);
?>

最后在火狐下效果:

php制作基于xml的RSS订阅源功能示例

PHP 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
PHP实现分页的一个示例
Oct 09 PHP
我的论坛源代码(四)
Oct 09 PHP
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
php多文件打包下载的实例代码
Jul 12 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 #PHP
php实现XML和数组的相互转化功能示例
Feb 08 #PHP
PHP 获取指定地区的天气实例代码
Feb 08 #PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 #PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 #PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 #PHP
PHP输出XML格式数据的方法总结
Feb 08 #PHP
You might like
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
python 判断一个进程是否存在
2009/04/09 Python
vscode 远程调试python的方法
2017/12/01 Python
python生成器与迭代器详解
2019/01/01 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
出国留学经济担保书
2014/04/01 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
实习证明格式范文
2014/10/14 职场文书
普通党员整改措施
2014/10/24 职场文书
解除处分决定书
2015/06/25 职场文书
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
Java数据结构之堆(优先队列)
2022/05/20 Java/Android