Tabla de contenidos
- 33.1. Introducción
- 33.2. Importando Feeds
- 33.3. Obteniendo Feeds desde páginas web
- 33.4. Consumiendo un Feed RSS
- 33.5. Consumiendo un Feed Atom
- 33.6. Consumiendo una única entrada Atom
- 33.7. Modificando estructuras de Feed y Entry
- 33.8. Clases personalizadas de Feed y Entry
- 33.9. Zend_Feed_Reader
- 33.9.1. Introducción
- 33.9.2. Importando Feeds
- 33.9.3. Obteniendo las fuentes subyacentes de Feed y Entry
- 33.9.4. Soporte de caché y peticiones inteligentes
- 33.9.5. Localizando URIs de feeds desde sitios web
- 33.9.6. Colecciones de atributos
- 33.9.7. Obteniendo información del feed
- 33.9.8. Obteniendo información de Entry/Item
- 33.9.9. Extendiendo las APIs de Feed y Entry
- 33.10. Zend_Feed_Writer
- 33.11. Zend_Feed_Pubsubhubbub
Zend_Feed proporciona funcionalidad para consumir feeds RSS
y Atom. Proporciona una sintaxis natural para acceder a los elementos de los feeds, atributos
de feed, y atributos de entry. Zend_Feed también cuenta con un amplio
soporte para modificar la estructura de feed y entry con la misma sintaxis natural, y convertir el
resultado de nuevo a XML. En el futuro, este soporte de modificación podría
ofrecer soporte para el Atom Publishing Protocol.
Desde el punto de vista de la programación, Zend_Feed consiste en una clase base
Zend_Feed, las clases base abstractas Zend_Feed_Abstract
y Zend_Feed_Entry_Abstract para representar Feeds y
Entries, implementaciones específicas de feeds y entries para RSS y Atom,
y un ayudante interno que hace posible la magia de la sintaxis natural.
En el ejemplo de abajo, mostramos un caso de uso sencillo para obtener un feed RSS y guardar las partes relevantes de los datos del feed en un simple array de PHP, que después podría usarse para imprimir los datos, almacenarlos en una base de datos, etc.
![]() |
Tenga en cuenta |
|---|---|
Muchos feeds RSS tienen diferentes propiedades de canal e item disponibles. La especificación RSS permite muchas propiedades opcionales, así que tenga esto en cuenta al escribir código que trabaje con datos RSS. |
Ejemplo 33.1. Poniendo Zend_Feed a trabajar con datos de un feed RSS
// Fetch the latest Slashdot headlines
try {
$slashdotRss =
Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
} catch (Zend_Feed_Exception $e) {
// feed import failed
echo "Exception caught importing feed: {$e->getMessage()}\n";
exit;
}
// Initialize the channel data array
$channel = array(
'title' => $slashdotRss->title(),
'link' => $slashdotRss->link(),
'description' => $slashdotRss->description(),
'items' => array()
);
// Loop over each channel item and store relevant data
foreach ($slashdotRss as $item) {
$channel['items'][] = array(
'title' => $item->title(),
'link' => $item->link(),
'description' => $item->description()
);
}
![[Note]](images/note.png)