Ne RSS almak için en iyi yolu, bir MySQL veritabanı içine Feeds

4 Cevap php

Ben birkaç RSS beslemeleri almak ve PHP kullanarak MySQL Veritabanı içine onları içerik koymak için çalışıyorum. Ben bu içeriği depolamak sonra, benim kendi sayfasında görüntülemek ve aynı zamanda tek bir RSS içine içeriği birleştirecek. (Muhtemelen filtreleme sonra)

Ben RSS Feeds önce ele değil, bu yüzden bu yapmanın en iyi Çerçevesi / Yöntemi merak ediyorum. Ben DOM temelli ayrıştırma hakkında okudum, ama bu, herhangi bir öneriniz bellek bir sürü alır duydum?

4 Cevap

Magpie PHP için makul bir RSS ayrıştırıcı. Kolay kullanım:

require('rss_fetch.inc');
$rss = fetch_rss($url);

Örneğin böyle bir madde:

<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>

Böyle bir diziye dönüştü olacaktır:

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'
    )
);

Sonra sadece DB kaydetmek istediğiniz ve uzağa gitmek bit dışarı seçebilirsiniz!

Orada iyi PHP çözümleyici SimplePie, IMHO olduğunu. Ben yıllardır bunu kullanıyorum. Aşağıdaki kapma ve ayrıştırma de harika: 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; Dublin Core 1.0, Dublin Core 1.1, GeoRSS, iTunes RSS 1.0 (çoğunlukla tam), Media RSS 1.1.1, RSS 1.0 İçerik Modülü, W3C WGS84 Temel Geo, XML 1.0, XHTML 1.0: Aşağıdaki ad alanları da dahil olmak üzere

SimplePie 1.2 hatta veri tabanı önbelleğe sahip, bu yüzden ne istediğinizi yapmanız gereken her şeyi olmalı.

Ham XML dosyalarını ayrıştırmak gerekir ve eğer, XMLize kullanmayı deneyin

-Trystian

Sadece (veritabanına eklemek, RSS ayrıştırmak) uçtan uca çalışan çok basit bir araya hacklendi komut dosyası için;

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

Magpie ve one in pear dahil olmak üzere orada kütüphaneleri ayrıştırma birkaç RSS vardır.

Ben bir ayrıştırıcı almak ve ardından veritabanına beslemek için veri ile bir döngü içinde çalışır. Eğer komut dosyasını çalıştırmak istiyorum ne sıklıkta anlamaya emin olun ve bu cron veya sadece seyrek yüklenen bir sayfanın parçası çalışıyorsa düşünüyorum.