Programmer's Reference Guide
| Получение лент из веб-страниц |
Работа с лентой RSS
Чтение ленты такое же простое, как создание объекта Zend_Feed_Rss
с URI ленты:
$channel = new Zend_Feed_Rss('http://rss.example.com/channelName');
Если при извлечении ленты произошла ошибка, то будет сгенерировано исключение
Zend_Feed_Exception.
Создав объект ленты, вы можете получить доступ к любым стандартным свойствам канала RSS (channel) непосредственно в объекте:
echo $channel->title();
Обратите внимание на синтаксис функции. Zend_Feed использует соглашение
об интерпретации свойств как объекта XML, если они запрошены в синтаксисе
получения переменной ($obj->property и как строки, если они запрошены
в синтаксисе метода ($obj->property()). Это позволяет получить доступ
к полному тексту любого отдельного узла, что одновременно дает полный доступ
и ко всем дочерним элементам.
Если свойства канала имеют атрибуты, то к ним можно получить доступ, используя синтаксис массива PHP:
echo $channel->category['domain'];
Поскольку атрибуты не могут иметь дочерние элементы, то нет необходимости в синтаксисе метода для получения значений атрибутов.
Скорее всего, вам потребуется произвести обход ленты и выполнить
какие-либо операции с ее сообщениями. Zend_Feed_Abstract
реализует интерфейс PHP Iterator, поэтому вывод заголовков
всех статей в канале будет выглядеть следующим образом:
foreach ($channel as $item) {
echo $item->title() . "\n";
}
На тот случай, если вы не знакомы с RSS, здесь приведены стандартные
элементы, которые должны присутствовать в канале (элемент
<channel>) и отдельных сообщениях RSS
(элемент <item>).
Обязательные элементы канала:
-
title- имя канала -
link- URL веб-сайта, соответствующего каналу -
description- одно или несколько предложений, составляющих описание канала
Обычно используемые необязательные элементы канала:
-
pubDate- дата публикации канала в формате RFC 822 -
language- язык, на котором написано содержимое канала -
category- одна или несколько (задается несколькими тегами) категорий, к которым принадлежит канал
Элементы <item> не имеют обязательных вложенных элементов.
Тем не менее, должны быть представлены заголовок
<title> или описание
<description>.
Обычно используемые элементы сообщения:
-
title- заголовок сообщения -
link- URL сообщения -
description- краткое описание -
author- e-mail автора -
category- одна или несколько категорий, к которым принадлежит сообщение -
comments- URL комментариев к данному сообщению -
pubDate- дата публикации в формате RFC 822
В своем коде вы можете проверить, имеет ли элемент непустое значение, следующим образом:
if ($item->propname()) {
// ... обработка
}
Если вместо этого использовать $item->propname, то всегда будете
получать объект. Пустой объект расценивается как TRUE,
поэтому такая проверка будет некорректной.
Для получения более подробной информации читайте официальное описание спецификации RSS 2.0: » http://blogs.law.harvard.edu/tech/rss
| Получение лент из веб-страниц |
Select a Version
Languages Available
Components
Search the Manual
Navigation
- Руководство разработчика
- Руководство разработчика
- Zend_Feed
- Введение
- Импортирование лент с помощью Zend_Feed
- Получение лент из веб-страниц
- Работа с лентой RSS
- Работа с лентой Atom
- Работа с отдельным сообщением ленты Atom
- Изменение структуры лент и их сообщений
- Создание собственных классов лент и записей
