Frage

Ich erhalte eine URL von einem Benutzer. Ich muss wissen:
a) ist die URL eine gültige RSS-Feed?
b) wenn nicht, ist es eine gültige Feed mit dieser URL zugeordnet

mit PHP / Javascript oder etwas ähnlichem

(Bsp. http://techcrunch.com versagt a), aber b) würde zurückkehren, um ihren RSS-Feeds)

Edit: Siehe meine beantworten unten

War es hilfreich?

Lösung

Haben Sie etwas, was ich wollte:

Google AJAX Feed-API eine Last-Feed und Lookup-Feed-Funktion hat (Dok hier ).

a) Last Feed das Futter (und Futtermittel-Status) in JSON bietet

b) Lookup Feed den RSS-Feed für eine bestimmte URL liefert

Theres auch eine Fund-Feed-Funktion, die für RSS-Feeds sucht basierend auf einem Schlüsselwort.

Planung zu verwenden, um dies mit jQuery $ .getJSON

Andere Tipps

Die Zend-Feed Klasse der Zend-Framework kann automatisch eine Webseite analysieren und die verfügbare Feeds Liste.

Beispiel:

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

Dieser Link ermöglicht es Ihnen, den Link gegen die RSS / Atom-Spezifikationen mit den W3C-Spezifikationen zu validieren, sondern erfordert Sie manuell die uRL eingeben.

Es gibt eine Reihe von Möglichkeiten, dies programmatisch zu tun, je nach Wahl der Sprache - in PHP, Parsen die Datei als gültige XML ein guter Weg ist, beginnen dann vergleichen sie es mit der relevanter DTD .

b), wenn die Verbindung selbst kein Futter ist, können Sie es analysieren können und suchen Sie nach einem bestimmten Futter im Bereich der Seite, für einen Link, dessen Typs suchen ist „application / rss + xml “, zum Beispiel:

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

Diese Art der Verbindung ist die von den meisten Browsern verwendet, um „auto-discover“ Feeds (das RSS-Symbol verursacht in der Adressleiste angezeigt werden)

a) Abrufen es und versuchen, es zu analysieren. Wenn Sie es analysieren kann, ist es gültig.

b) Testen Sie, ob es sich um ein HTML-Dokument (Server gesendet text/html) MIME-Typ ist. Wenn ja, ist es durch einen HTML-Parser laufen und sucht <link> Elemente mit RSS-Feeds von Beziehungen.

Für Perl gibt es Feed :: Finden , die das tut automatisieren Entdeckung von Syndication-Feeds von der Webseite. Die Benutzung ist ganz simplicistic:

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

Es wird versucht, zuerst die link Tags und dann scannt die a Tags für Dateien mit dem Namen .rss und so ähnlich.

Sind Sie tun dies in einer bestimmten Sprache, oder tun Sie nur Details wollen über die RSS-Spezifikation?

In der Regel suchen die XML-Prolog:

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

, gefolgt von einem -Element, aber man könnte es als XML validieren möchten, ist es vollständig gegen eine DTD zu validieren, oder dass verifizieren - zum Beispiel, bezeichnet jede URL gültig ist, usw. Weitere Einzelheiten dazu beitragen würde <. / p>

UPDATE : Ah - PHP. Ich habe diese Bibliothek gefunden ziemlich nützlich zu sein: MagpieRSS

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top