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 相关文章推荐
PHP array_push 数组函数
Dec 26 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 PHP
PHP钩子实现方法解析
May 21 PHP
laravel使用数据库测试注意事项
Apr 10 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 截取字符串专题集合
2010/08/19 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
js继承的实现代码
2010/08/05 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
js定时器实例分享
2016/12/20 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python pandas库中的isnull()详解
2019/12/26 Python
详解Python 最短匹配模式
2020/07/29 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
甜点店创业计划书
2014/01/27 职场文书
开业庆典主持词
2014/03/21 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
儿子满月酒致辞
2015/07/29 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书