воскресенье, 1 сентября 2013 г.

Парсинг RSS лент средствами PHP

Парсинг RSS лент средствами PHP

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-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п.

Комментариев нет:

Отправить комментарий

Постоянные читатели

Популярные сообщения