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 session有效期session.gc_maxlifetime
Apr 20 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
Mar 19 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP实现添加购物车功能
Mar 06 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
php libevent 功能与使用方法详解
Mar 04 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 查找数组元素提高效率的方法详解
2017/05/05 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Python标准库defaultdict模块使用示例
2015/04/28 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
英文自荐信常用句子
2014/03/26 职场文书
新农村建设标语
2014/06/24 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
实习护士自荐信
2015/03/25 职场文书
教师读书笔记
2015/06/29 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技
MySQL优化之慢日志查询
2022/06/10 MySQL
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers