Pregunta

Puedo obtener una URL de un usuario.Necesito saber:
a) es la URL de un feed RSS válido?
b) si no hay una fuente válida asociada con esa URL

usando PHP/Javascript o algo similar

(Ex. http://techcrunch.com no pasa), pero b) volvería a su RSS feed)

Editar:Ver a mi respuesta a continuación

¿Fue útil?

Solución

Encuentra algo que yo quería:

Google AJAX Feed API tiene una carga de alimentación y de búsqueda de la función de alimentación (Docs aquí).

a) La carga de alimentación proporciona la fuente (y se alimentan de estado) en JSON

b) La búsqueda de alimento proporciona la fuente RSS para una determinada URL

También hay un encontrar la función de alimentación que busca RSS basado en una palabra clave.

Planificar el uso de esta con JQuery $.getJSON

Otros consejos

El Zend Alimentación de clase de la Zend-marco automáticamente se puede analizar una página web y la lista de fuentes disponibles.

Ejemplo:

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

En este enlace se permiten validar el enlace en contra de la RSS/Atom especificaciones de uso de las especificaciones W3C, pero requiere que el usuario introduzca manualmente la dirección url.

Hay un número de maneras de hacer esto mediante programación, dependiendo de su elección de idioma en PHP, analizar el archivo como XML válido es una buena forma de empezar, luego se compara con la pertinentes DTD.

Para b), si el enlace en sí no es una fuente, puede analizarlo y buscar un determinado alimento en el <head> la sección de la página, buscando un vínculo de tipo "application/rss+xml", e.g:

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

Este tipo de enlace es el utilizado por la mayoría de los navegadores para "auto-descubrimiento" de feeds (causando el icono de RSS que aparece en la barra de direcciones)

a) Recuperar y tratar de analizarlo.Si usted puede analizar, es válido.

b) Prueba de si se trata de un documento HTML (servidor envía text/html) Tipo de MIME.Si es así, ejecute a través de un analizador de HTML y busca <link> elementos con el RSS de las relaciones.

Para Perl, hay Alimentación::Find que hace automatizar el descubrimiento de fuentes de sindicación de la página web.El uso es bastante simplicistic:

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

Se trata por primera vez de la link etiquetas y, a continuación, examina la a etiquetas para archivos con el nombre .rss y algo como eso.

Estás haciendo esto en un idioma específico, o no te quieren sólo los detalles acerca de la especificación RSS?

En general, buscar el prólogo XML:

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

seguido por un <rss> elemento, pero es posible que desee validar XML, validar completamente contra un DTD, o comprobar que - por ejemplo, la URL mencionada es válida, etc.Más en detalle, sería de ayuda.

ACTUALIZACIÓN:Ah - PHP.He encontrado esta biblioteca a ser muy útil: MagpieRSS

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top