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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
PHP与SQL注入攻击[二]
Apr 17 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
PHP计算加权平均数的方法
Jul 16 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
php中错误处理操作实例分析
Aug 23 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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
咖啡的种类和口感
2021/03/03 新手入门
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
设定php简写功能的方法
2019/11/28 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
深入理解vue Render函数
2017/07/19 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python的print用法示例
2014/02/11 Python
python里将list中元素依次向前移动一位
2014/09/12 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
pandas去除重复列的实现方法
2019/01/29 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
人事主管的岗位职责
2013/11/16 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
预备党员自我评价范文
2015/03/04 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js