我正在尝试使用几个RSS提要,并使用PHP将它们的内容放入MySQL数据库.存储此内容后,我将在自己的页面上显示,并将内容合并到一个RSS Feed中.(可能在过滤后)
我之前没有处理过RSS Feeds,所以我想知道这样做的最佳框架/方法.我已经阅读过基于DOM的解析,但是听说它需要大量的内存,任何建议?
Magpie是PHP的合理RSS解析器.使用方便:
require('rss_fetch.inc');
$rss = fetch_rss($url);
Run Code Online (Sandbox Code Playgroud)
像这样的项目例如:
<item rdf:about="http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257">
<title>Weekly Peace Vigil</title>
<link>http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257</link>
<description>Wear a white ribbon</description>
<dc:subject>Peace</dc:subject>
<ev:startdate>2002-06-01T11:00:00</ev:startdate>
<ev:location>Northampton, MA</ev:location>
<ev:enddate>2002-06-01T12:00:00</ev:enddate>
<ev:type>Protest</ev:type>
</item>
Run Code Online (Sandbox Code Playgroud)
将变成这样的数组:
array(
title => 'Weekly Peace Vigil',
link => 'http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257',
description => 'Wear a white ribbon',
dc => array (
subject => 'Peace'
),
ev => array (
startdate => '2002-06-01T11:00:00',
enddate => '2002-06-01T12:00:00',
type => 'Protest',
location => 'Northampton, MA'
)
);
Run Code Online (Sandbox Code Playgroud)
然后,您可以选择要保存在数据库中的位,然后离开!
小智 7
最好的PHP解析器是SimplePie,恕我直言.我已经使用它多年了.它非常适合抓取和解析以下内容:RSS 0.90,RSS 0.91(Netscape),RSS 0.91(Userland),RSS 0.92,RSS 1.0,RSS 2.0,Atom 0.3,Atom 1.0; 包括下列命名空间:都柏林核心1.0,都柏林核心1.1的GeoRSS,iTunes的RSS 1.0(基本完成),媒体RSS 1.1.1,RSS 1.0内容模块,W3C WGS84基础地理,XML 1.0,XHTML 1.0
SimplePie 1.2甚至还有数据库缓存,因此它应该拥有您需要的所有功能.
如果您需要解析原始XML文件,请尝试使用XMLize
-Trystian