RSS için belirli bir URL Besleme Last.fm 'Nasıl

6 Cevap php

I get a URL from a user. I need to know:
a) is the URL a valid RSS feed?
b) if not is there a valid feed associated with that URL

PHP / Javascript veya benzer bir şey kullanıyor

) (Örn. http://techcrunch.com a başarısız), ama b) kendi RSS beslemesi dönecekti

Edit: See my answer altında

6 Cevap

İstediğim şey buldum:

Google'ın AJAX Feed API bir yük yem ve yem arama işlevi vardır (Dokümanlar here).

a) Load feed JSON yem (ve yem durumu) sağlar

b) Lookup feed belirli bir URL için RSS beslemesi sağlar

RSS arar da bulmak besleme işlevi gidecekseniz bir anahtar kelime dayalı beslemeleri.

JQuery'nın $. GetJSON bu kullanmayı planlıyor

Zend Feed class Zend-çerçevesinin otomatik olarak bir web sayfası ayrıştırmak ve mevcut beslemeleri listeleyebilirsiniz.

Example:
$feedArray = Zend_Feed::findFeeds('http://www.example.com/news.html');

a) onu almak ve onu ayrıştırmak için deneyin. Bunu ayrıştırmak durumunda, geçerli bulunuyor.

b) Test bir HTML belgesi) MIME-tipi ({[(0 gönderilen sunucu)]} eğer. Eğer öyleyse, bir HTML çözümleyici aracılığıyla çalıştırın ve RSS ilişkileri ile <link> öğeleri arayın.

This link Eğer W3C gözlük kullanarak RSS / Atom özelliklere karşı bağlantısını doğrulamak için izin verecek, ancak elle url girmenizi gerektirir.

Bunu yapmanın yolları vardır programlı, dil sizin seçiminize bağlı olarak - PHP, dosyayı ayrıştırma as valid XML relevant DTD karşılaştırın sonra, başlamak için iyi bir yoldur .

Linkin kendisini bir yem değilse b) için, bunu ayrıştırmak ve belirtilen bir besleme aramak Sayfanın bölümü, türü "application / rss + xml", örneğin bir bağlantı ararken:

<link rel="alternate" title="RSS Feed" 
    href="http://www.example.com/rss-feed.xml" type="application/rss+xml" />

Bu tür bağlantı (RSS simgesi adres çubuğunda görünmesine neden) beslemeleri "otomatik keşfetmek" için çoğu tarayıcı tarafından kullanılan biridir

Perl için, sendikasyon keşif web sayfasından beslemeleri otomatik yapar ki, Feed::Find var. Kullanımı oldukça simplicistic olduğunu:

use Feed::Find;
my @feeds = Feed::Find->find('http://example.com/');

İlk link etiketleri çalışır ve daha sonra .rss adlı dosyaları ve böyle bir şey için a etiketleri tarar.

Eğer belirli bir dilde bu yapıyorsun, ya da sadece RSS özellikleri hakkında ayrıntılı istiyorsun?

Genel olarak, XML önbölüküne arayın:

<?xml version="1.0" encoding="UTF-8"?>

Bir ardından eleman, ancak, XML olarak doğrulamak tam bir DTD karşı doğrulamak, ya da doğrulamak isteyebilirsiniz - örneğin, her bir URL Daha fazla ayrıntı yardımcı olacağını, vb geçerlidir anılacaktır.

UPDATE: Ah - PHP. Ben bu kütüphane oldukça yararlı buldum: MagpieRSS