Парсинг RSS лент средствами PHP
1 – SimpleXML:
2 – XML Parser Functions
3 – Написать RSS парсер на PHP
* RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п.
1 – SimpleXML:
<?
$url = 'rss.xml'; //адрес RSS ленты
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo '<h1>'.$item->title.'</h1>'; //выводим на печать заголовок статьи
echo $item->description; //выводим на печать текст статьи
}
?>
2 – XML Parser Functions
<?
$url = 'rss.xml'; //адрес RSS ленты
$xml = xml_parser_create(); //создаёт XML-разборщик
xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1); //устанавливает опции XML-разборщика
xml_parse_into_struct($xml, file_get_contents($url), $element, $index); //разбирает XML-данные в структуру массива
xml_parser_free($xml); //освобождает XML-разборщик
$count = count($index["TITLE"])-1; //число проходов цикла.
for ($i=0; $i < $count; $i++) {
echo '<h1>'.$element[$index["TITLE"][$i+1]]["value"].'</h1>'; //выводим на печать заголовок статьи
echo $element[$index["DESCRIPTION"][$i+1]]["value"]; //выводим на печать текст статьи
}
?>
3 – Написать RSS парсер на PHP
<?
$url = 'rss.xml'; //адрес RSS ленты
$rss = @file_get_contents($url); //получаем содержимое RSS лент в виде одной строки
if ($rss) {
preg_match_all("/title>[^>]+>/", $rss, $title); //парсим титлы
preg_match_all("/<description>[^<]+<\/description>/", $rss, $description); //парсим описание
$count = count($title[0])-1; //число проходов цикла
for ($i=0; $i < $count; $i++) {
echo '<h1>'.substr($title[0][$i+1], 6, -8).'</h1>';
echo substr($description[0][$i], 13, -14); //выводим на печать текст статьи
}
} else {
echo '<font color="red">Ошибка парсинга '.$url.'</font>';
}
?>
* RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п.
Комментариев нет:
Отправить комментарий