Domanda

Ottengo un URL da un utente.Ho bisogno di sapere:
a) l'URL è un feed RSS valido?
b) in caso contrario esiste un feed valido associato a quell'URL

utilizzando PHP/Javascript o qualcosa di simile

(Ex. http://techcrunch.com fallisce a), ma b) restituirebbe il loro feed RSS)

Modificare:Guarda il mio risposta sotto

È stato utile?

Soluzione

Ho trovato qualcosa che volevo:

Quello di Google API di alimentazione AJAX ha una funzione di caricamento feed e ricerca feed (Docs Qui).

UN) Carica alimentazione fornisce il feed (e lo stato del feed) in JSON

B) Feed di ricerca fornisce il feed RSS per un determinato URL

C'è anche una funzione di ricerca feed che cerca feed RSS in base a una parola chiave.

Pianificazione di utilizzarlo con $.getJSON di JQuery

Altri suggerimenti

IL Classe Zend Feed del Quadro Zend può analizzare automaticamente una pagina web ed elencare i feed disponibili.

Esempio:

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

Questo link ti consentirà di convalidare il collegamento rispetto alle specifiche RSS/Atom utilizzando le specifiche W3C, ma richiede l'inserimento manuale dell'URL.

Esistono diversi modi per farlo a livello di codice, a seconda della lingua scelta: in PHP, analizzando il file come XML valido è un buon modo per iniziare, quindi confrontalo con DTD pertinente.

Per b), se il collegamento in sé non è un feed, puoi analizzarlo e cercare un feed specifico nella sezione <head> della pagina, cercando un collegamento il cui tipo sia "application/rss+xml", ad es. :

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

Questo tipo di collegamento è quello utilizzato dalla maggior parte dei browser per "rilevare automaticamente" i feed (facendo apparire l'icona RSS nella barra degli indirizzi)

a) Recuperarlo e provare ad analizzarlo.Se riesci ad analizzarlo, è valido.

b) Verifica se si tratta di un documento HTML (server inviato text/html) Tipo MIME.Se è così, eseguilo attraverso un parser HTML e cerca <link> elementi con relazioni di feed RSS.

Per Perl sì Alimentazione::Trova , che automatizza il rilevamento dei feed di syndication dalla pagina web.L'utilizzo è abbastanza semplicistico:

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

Per prima cosa prova il link tag e quindi esegue la scansione del file a tag per i file denominati .rss e qualcosa del genere.

Lo stai facendo in una lingua specifica o desideri semplicemente dettagli sulle specifiche RSS?

In generale, cerca il prologo XML:

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

seguito da un elemento <rss>, ma potresti voler convalidarlo come XML, convalidarlo completamente rispetto a un DTD o verificare che, ad esempio, ogni URL a cui si fa riferimento sia valido, ecc.Maggiori dettagli aiuterebbero.

AGGIORNAMENTO:Ah, PHP.Ho trovato questa libreria molto utile: GazzaRSS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top