将RSS源添加到MySQL数据库的最佳方法是什么?

Tyl*_*ter 9 php mysql rss

我正在尝试使用几个RSS提要,并使用PHP将它们的内容放入MySQL数据库.存储此内容后,我将在自己的页面上显示,并将内容合并到一个RSS Feed中.(可能在过滤后)

我之前没有处理过RSS Feeds,所以我想知道这样做的最佳框架/方法.我已经阅读过基于DOM的解析,但是听说它需要大量的内存,任何建议?

Pau*_*xon 9

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


Dan*_*sen 6

对于一个非常简单的黑客攻击脚本,它只是端到端工作(解析RSS,插入数据库);

http://code.google.com/p/rssingest/