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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
PHP操作文件方法问答
Mar 16 PHP
PHP读取XML值的代码(推荐)
Jan 01 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
php四种基础算法代码实例
Oct 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
yii框架使用分页的方法分析
Jul 25 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
mongodb和php的用法详解
2019/03/25 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
Python深入学习之内存管理
2014/08/31 Python
Python二分法搜索算法实例分析
2015/05/11 Python
对Python 数组的切片操作详解
2018/07/02 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
关于环保的演讲稿
2014/05/10 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
个人违纪检讨书
2014/09/15 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
小学教师读书笔记
2015/07/01 职场文书
学生会招新宣传语
2015/07/13 职场文书
2016高考寄语集锦
2015/12/04 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL