Question

Je reçois une URL d'un utilisateur. J'ai besoin de savoir:
a) l'URL est-elle un flux RSS valide?
b) si non, existe-t-il un fil valide associé à cette URL

utilisant PHP / Javascript ou quelque chose de similaire

(Par exemple, http://techcrunch.com échoue a), mais b) renverrait son flux RSS)

Modifier: consultez mon answer ci-dessous

Était-ce utile?

La solution

J'ai trouvé quelque chose que je voulais:

L’A API de flux AJAX de Google est dotée d'une fonction de flux de chargement et de flux de recherche (Docs ici ).

a) Flux de charge fournit le flux (et son statut) en JSON

.

b) Flux de recherche fournit le flux RSS pour une URL donnée

Il existe également une fonction de recherche de flux qui recherche des flux RSS en fonction d'un mot clé.

Vous envisagez de l'utiliser avec le $ .getJSON de JQuery

Autres conseils

La classe Zend Feed du Zend-framework peut analyser automatiquement une page Web et répertorier les flux disponibles.

Exemple:

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

Ce lien vous permettra de valider le lien par rapport aux spécifications RSS / Atom à l'aide des spécifications du W3C, mais nécessite vous entrez manuellement l'URL.

Il existe différentes manières de procéder, par programmation, en fonction de la langue choisie - en PHP, l'analyse du fichier en tant que code XML valide est un bon moyen de commencer, puis comparez-le à DTD pertinente .

Pour b), si le lien lui-même n'est pas un flux, vous pouvez l'analyser et rechercher un flux spécifié dans < head > section de la page, recherchant un lien de type & "application / rss + xml &", par exemple:

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

Ce type de lien est celui utilisé par la plupart des navigateurs pour & "Découverte automatique &"; Flux (l’icône RSS apparaît dans votre barre d’adresse)

a) Récupérez-le et essayez de l'analyser. Si vous pouvez l'analyser, il est valide.

b) Vérifiez s'il s'agit d'un document HTML (le type envoyé par le serveur text/html) est de type MIME. Si tel est le cas, exécutez-le via un analyseur HTML et recherchez <link> des éléments avec des relations de flux RSS.

Pour Perl, il existe Feed :: Find , qui automatise le découverte des flux de syndication à partir de la page Web. L’utilisation est assez simpliste:

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

Il commence par essayer les balises link, puis analyse les balises a pour rechercher les fichiers nommés .rss et ainsi de suite.

Faites-vous cela dans un langage spécifique ou voulez-vous simplement des détails sur la spécification RSS?

En général, recherchez le prologue XML:

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

suivi d'un < rss > élément, mais vous souhaiterez peut-être le valider en tant que XML, le valider entièrement par rapport à une DTD ou vérifier que, par exemple, chaque URL référencée est valide, etc. Des informations plus détaillées seraient utiles.

MISE À JOUR : Ah - PHP. J'ai trouvé cette bibliothèque très utile: MagpieRSS

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top