Spis treści
Zend_Feed zapewnia funkcjonalność umożliwiającą przetwarzanie
kanałów informacyjnych RSS oraz Atom. Zapewnia ona naturalną składnię umożliwiającą
dostęp do elementów kanałów informacyjnych, ich atrybutów oraz atrybutów samych wpisów.
Zend_Feed daje także obszerne wsparcie w modyfikowaniu kanałów
i struktury wpisów w ten sam naturalny sposób i umożliwia zapisanie rezultatów
jako XML. W przyszłości klasa ma zapewnić obsługę protokołu publikowania Atom
(Atom Publishing Protocol).
Programowo Zend_Feed składa się z bazowej klasy Zend_Feed,
abstrakcyjnych klas Zend_Feed_Abstract oraz Zend_Feed_EntryAbstract
reprezentujących kanały informacyjne i ich wpisy, specyficznych implementacji
kanałów i wpisów dla RSS i Atom, oraz z pomocników odpowiedzialnych za
naturalną składnię.
W przykładzie poniżej pokazujemy prosty przykład odbierania danych RSS i zapisywania potrzebnych części danych kanału do prostej tablicy PHP, która może być potem użyta do wyświetlenia danych, zapisania ich do bazy danych itp.
![]() |
Bądż ostrożny |
|---|---|
Wiele kanałów RSS ma dostępne różne właściwości samego kanału i jego elementów. Specyfikacja RSS umożliwia użycie wielu opcjonalnych parametrów, więc bądź ostrożny gdy będziesz pisał kod pracujący z RSS. |
Przykład 12.1. Użycie Zend_Feed do pobierania danych RSS
<?php
require_once 'Zend/Feed.php';
// Ściągamy najnowsze nagłówki ze Slashdot
try {
$slashdotRss = Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
} catch (Zend_Feed_Exception $e) {
// importowanie danych nie udało się
echo "Exception caught importing feed: {$e->getMessage()}\n";
exit;
}
// inicjalizacja tablicy z danymi kanału
$channel = array(
'title' => $slashdotRss->title(),
'link' => $slashdotRss->link(),
'description' => $slashdotRss->description(),
'items' => array()
);
// Pętla po każdym elemencie kanału i zapisanie potrzebnych danych
foreach ($slashdotRss as $item) {
$channel['items'][] = array(
'title' => $item->title(),
'link' => $item->link(),
'description' => $item->description()
);
}
?>