- 浏览: 13730170 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
通用PHP RSS/Feed 生成类库(支持RSS 1.0/2.0和ATOM)
PHP Universal Feed Generator (supports RSS 1.0, RSS 2.0 and ATOM)
下载 : FeedWriter
可 生成的RSS版本:
- RSS 1.0 (which officially obsoleted RSS 0.90)
- RSS 2.0 (which officially obsoleted RSS 0.91, 0.92, 0.93 and 0.94)
- ATOM 1.0
功能:
- 可生成RSS 1.0, RSS 2.0 和ATOM 1.0 feeds
- 所有生成的Feed可经过验证 feed validator .
- 支 持所有Feed属性.
- 容易的设置channel 和 feed 条目
- 为不同的版本使用命名空间.
- 自 动转换日期格式.
- 为ATOM feeds生成 UUID (通用唯一标识符 Universally Unique Identifier).
- 支持子标签和子标签属性. (如: image 和 encloser tags)
- 完全的 PHP5面向对像构造 class structure.
- 为需要的标签CDATA 编码.
- 使用差不多的代码生成所有 版本的feed
使用范例:
<?php // This is a minimum example of using the class include("FeedWriter.php"); //Creating an instance of FeedWriter class. $TestFeed = new FeedWriter(RSS2); //Setting the channel elements //Use wrapper functions for common channel elements $TestFeed->setTitle('Testing & Checking the RSS writer class'); $TestFeed->setLink('http://www.ajaxray.com/projects/rss'); $TestFeed->setDescription('This is test of creating a RSS 2.0 feed Universal Feed Writer'); //Image title and link must match with the 'title' and 'link' channel elements for valid RSS 2.0 $TestFeed->setImage('Testing the RSS writer class','http://www.ajaxray.com/projects/rss','http://www.rightbrainsolution.com/images/logo.gif'); //Detriving informations from database addin feeds $db->query($query); $result = $db->result; while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { //Create an empty FeedItem $newItem = $TestFeed->createNewItem(); //Add elements to the feed item $newItem->setTitle($row['title']); $newItem->setLink($row['link']); $newItem->setDate($row['create_date']); $newItem->setDescription($row['description']); //Now add the feed item $TestFeed->addItem($newItem); } //OK. Everything is done. Now genarate the feed. $TestFeed->genarateFeed(); ?>
补充:
另一个生成RSS 2.0的PHP Class
下载: class_rss_writer.php
<?php /** * 使用范例: * ============================================================== $feed = new RSS(); $feed->title = "RSS Feed Title"; $feed->link = "http://www.newyork.com/"; $feed->description = "Recent articles on newyork.com."; $db->query($query); $result = $db->result; while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $item = new RSSItem(); $item->title = $title; $item->link = $link; $item->setPubDate($create_date); $item->description = "<![CDATA[ $html ]]>"; $feed->addItem($item); } echo $feed->serve(); * ============================================================== */ class RSS { var $title; var $link; var $description; var $language = "en-us"; var $pubDate; var $items; var $tags; function RSS() { $this->items = array(); $this->tags = array(); } function addItem($item) { $this->items[] = $item; } function setPubDate($when) { if(strtotime($when) == false) $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT"; else $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT"; } function getPubDate() { if(empty($this->pubDate)) return date("D, d M Y H:i:s ") . "GMT"; else return $this->pubDate; } function addTag($tag, $value) { $this->tags[$tag] = $value; } function out() { $out = $this->header(); $out .= "<channel>\n"; $out .= "<title>" . $this->title . "</title>\n"; $out .= "<link>" . $this->link . "</link>\n"; $out .= "<description>" . $this->description . "</description>\n"; $out .= "<language>" . $this->language . "</language>\n"; $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n"; foreach($this->tags as $key => $val) $out .= "<$key>$val</$key>\n"; foreach($this->items as $item) $out .= $item->out(); $out .= "</channel>\n"; $out .= $this->footer(); $out = str_replace("&", "&", $out); return $out; } function serve($contentType = "application/xml") { $xml = $this->out(); header("Content-type: $contentType"); echo $xml; } function header() { $out = '<?xml version="1.0" encoding="utf-8"?>' . "\n"; $out .= '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . "\n"; return $out; } function footer() { return '</rss>'; } } class RSSItem { var $title; var $link; var $description; var $pubDate; var $guid; var $tags; var $attachment; var $length; var $mimetype; function RSSItem() { $this->tags = array(); } function setPubDate($when) { if(strtotime($when) == false) $this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT"; else $this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT"; } function getPubDate() { if(empty($this->pubDate)) return date("D, d M Y H:i:s ") . "GMT"; else return $this->pubDate; } function addTag($tag, $value) { $this->tags[$tag] = $value; } function out() { $out .= "<item>\n"; $out .= "<title>" . $this->title . "</title>\n"; $out .= "<link>" . $this->link . "</link>\n"; $out .= "<description>" . $this->description . "</description>\n"; $out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n"; if($this->attachment != "") $out .= "<enclosure url='{$this->attachment}' length='{$this->length}' type='{$this->mimetype}' />"; if(empty($this->guid)) $this->guid = $this->link; $out .= "<guid>" . $this->guid . "</guid>\n"; foreach($this->tags as $key => $val) $out .= "<$key>$val</$key\n>"; $out .= "</item>\n"; return $out; } function enclosure($url, $mimetype, $length) { $this->attachment = $url; $this->mimetype = $mimetype; $this->length = $length; } }
- FeedWriter.zip (7.5 KB)
- 下载次数: 47
发表评论
-
PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
2016-09-03 07:54 7169最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 45531 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 45661 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 54801 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 45001 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 5039$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4383运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 46801 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 44571. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 44471 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2706The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2146有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3122对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1376传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 1038PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 18121 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1747原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 735MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1080NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2326在开发或调试Node.js应 ...
相关推荐
2. **兼容性**:支持RSS 0.91、0.92、1.0、2.0以及Atom 0.3和1.0等不同版本的feed格式,确保了与其他系统的广泛兼容性。 3. **扩展性**:Rss.Net设计时考虑到了扩展性,允许用户自定义feed元素,以适应特定的需求或...
开发者可能利用了C#中的类库,如System.Xml,来处理XML解析,因为RSS和Atom feed本质上都是XML文档。 描述中提到的“可订阅RSS订阅”意味着这个新闻阅读器能够管理用户的订阅列表,让用户可以轻松添加新的RSS或Atom...
本文将深入探讨20个在PHP开发中极为常见的类库,涵盖图表生成、RSS解析、缩略图生成、支付处理、OpenID支持以及数据抽象和对象关系映射(ORM)等多个方面。 #### 图表生成类库 1. **pChart** - 这是一个功能强大的...
标题中的“RSS发布(生成XML)和读取URL”指的是RSS(Really Simple Syndication)技术的应用,这是一种标准化的XML格式,用于发布新闻提要、博客文章等更新内容,使得用户可以方便地订阅和获取信息。RSS发布涉及创建...
这个工具包的核心在于其对RSS标准的全面支持,包括RSS 0.91、RSS 1.0、RSS 2.0以及Atom 1.0等版本,确保了与各种RSS源的兼容性。 首先,让我们了解一下RssToolkit的主要功能。它提供了RSS Feed的读取、解析、创建和...
在C#中实现RSS,你可以利用.NET Framework提供的类库来创建和解析RSS feed。本教程将引导你理解RSS的基本概念,并教你如何使用C#编写一个简单的RSS阅读器或生成器。 1. **RSS基础知识** - RSS是一种XML数据格式,...
4. **RSS结构**:理解RSS的结构很重要,一个基本的RSS 2.0 feed包含频道(channel)和项(item)两个部分。频道包含关于整个feed的信息,如标题、描述和链接;项则是具体的新闻或文章,每个项都有自己的标题、描述、...
例如,可以增加支持RSS 2.0和Atom两种格式的能力,或者实现多线程下载以提高性能。还可以集成到其他平台,如桌面、移动设备甚至是Web应用,利用ASP.NET或其他Web框架。 总之,"C#开发的rss新闻阅读器"是一个实践性...
以下是一些非常有用的PHP类库,涉及图表创建、RSS解析、缩略图生成、支付处理、OpenID支持、对象关系映射(ORM)、PDF生成、Excel操作以及邮件发送等多个领域。 1. **图表库**: - pChart:提供了创建统计图表的...
2. ** SyndicationFeed 类**:.NET Framework 提供的System.ServiceModel.Syndication命名空间中的SyndicationFeed类,专门用于处理RSS和Atom feed。通过这个类,我们可以方便地读取、创建和修改RSS源。 3. **HTTP...
《新闻阅读器——基于C#和面向对象编程的RSS与Atom格式支持》 在信息技术领域,新闻阅读器是一种常见的应用程序,它允许用户订阅并管理来自多个来源的新闻更新,通常是通过RSS(Really Simple Syndication)或Atom...
在.NET环境中,我们可以利用丰富的类库和工具来简化RSS解析和处理的过程。 1. **.NET Framework基础** .NET Framework是由微软开发的软件框架,它提供了执行和创建Windows应用程序所需的类库和服务。在这个项目中...
在C#中,我们可以使用System.ServiceModel.Syndication命名空间下的类来解析和生成这两种格式的feed。例如, SyndicationFeed类用于表示RSS或ATOM feed,SyndicationItem代表单个新闻条目。 【XML文档对象模型(DOM...
第五章“RSS和Atom”是两种常见的XML feed格式,用于发布和订阅网络内容。RSS(Really Simple Syndication)和Atom都是数据聚合和分发的标准,适用于博客、新闻和其他在线内容的推送。你将了解它们的结构、如何创建...
- `feed.php`:可能用于生成RSS或Atom订阅源,让用户可以订阅博客更新。 - `link.php`:可能处理链接请求,如友链管理。 - `index.php`:网站的入口文件,负责处理请求和渲染页面。 - `myphp1.2.sql`:数据库...
- **SimplePie**:高效且易于使用的RSS和Atom解析库,适合快速解析和显示RSS feed。 3. **缩略图生成** - **phpThumb**:功能强大的PHP类库,可以自定义生成各种尺寸和效果的缩略图,满足复杂的需求。 4. **支付...
本文将详细介绍一些PHP中常用的类库,包括图表库、RSS解析、缩略图生成、支付处理、OpenID支持、对象关系映射(ORM)、PDF生成器、Excel相关工具以及电子邮件处理和单元测试工具。 1. **图表库**: - **pChart**:...