Парсинг заголовков RSS лент со ссылкой и параметром title | Блог про блоги, продвижение, оптимизацию и торговлю
Главная страница
Авторизоваться
Подписаться на RSS
Об авторе
Сервисы
Реклама
Услуги
Портфолио
Партнерство

Парсинг заголовков RSS лент со ссылкой и параметром title

Декабрь 10th, 2010 Автор grafchitaru Рубрики: Разработка


Если вы хотите выводить на своем сайте хотите добавить заголовки произвольных RSS лент ресурсов, чтобы при наведении на ссылку выводилось часть текста из статьи, то вы можете воспользоваться приведенным мной кодом. Дело в том, что когда мне потребовался подобный функционал, то я попросту не смог в сети найти готового решения, поэтому мне пришлось все писать самому.
В общем, не буду сильно расписывать премудрости этого парсинга, а сразу приведу его исходный код.
Не забудьте кстати создать папку в том каталоге, где будет находиться скрипт под названием rss и выставьте на нее права 777. Пример работы этого скрипта вы можете посмотреть на сайте http://labcity.ru/rss/. UPD. Информацию о домене labcity.ru вы можете посмотреть во WHOIS — он уже свободен!
Если же по ходу дела будут возникать вопросы, то можете задавать их в комментариях, буду рад на них ответить по мере возможности:)
Еще раз повторюсь, скрипт парсит заголовки у RSS лент и сохраняет их на сервер, выдавая ссылки в нужном вам месте на записи из этого RSS с параметром title равным 200 первым символам из текста поста.
Итак,
Файл function.php

<?php
function parse(){
global $filename, $rss_url;
echo '<div class=quote>';
	$xml = simplexml_load_file($filename); 	
	$i = 1;
	foreach ($xml->channel->item as $item) {
		$title = $item->title;
		$description = $item->description;
		$link = $item->link;
echo '<a title="';
$symbs = 200; // Количество симловов которые надо вывести
$fraza = "";
$words = explode(" ", strip_tags(iconv("UTF-8", "Windows-1251", "$description")));
for($k=0;$i<count($words);$k++) 
{$nv_str=$fraza.$words[$k]." ";
if(strlen($nv_str)<$symbs)
{$fraza= $nv_str;}
else {break;}
}
$fraza = $fraza."...";
echo($fraza);
echo '" href="' , $link , '">' , iconv("UTF-8","windows-1251", $title) , '</a></br>';
			$i++;
		if ($i > 5) break; // Не более 5 анонсов новостей
	}
		echo '</div>';	
}
 
function download($url, $filename) {
	global $filename, $rss_url;
		$file = file_get_contents($url);
		if ($file) file_put_contents($filename, $file);
	}
?>

Файл index.php

<?php
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" /><title>Заголовок страницы</title></head><body>';
echo '<link rel="stylesheet" type="text/css" href="style_rss.css" />';
include "rss_lenty.php";
echo '</body></html>';
?>

Файл rss_lenty.php

<?php
include "function.php"; 
 
 
$filename = 'rss/grafchitarulj.xml';
$rss_url = 'http://grafchitaru.livejournal.com/data/rss/rss.php';
if (!file_exists($filename)) {download($rss_url, $filename);}
if (time() > filemtime($filename) + 60*60*12) {download($rss_url, $filename);}
echo '<p>Быстро новости</p>';
parse();
 
echo '<br>';
$filename = 'rss/zikofflj.xml';
$rss_url = 'http://zikoff.livejournal.com/data/rss/rss.php';
if (!file_exists($filename)) {download($rss_url, $filename);}
if (time() > filemtime($filename) + 60*60*12) {download($rss_url, $filename);}
echo '<p>Интервью с блоггерами</p>';
parse();
?>

Файл style_rss.css

.quote {
width:250px;
 
border: solid 1px #456B8F;
font: 10px helvetica, verdana, sans-serif;
color: #222222;
background-color: #ffffff}
 
.quote a {
font: 10px arial, serif;
color: #003399;
text-decoration: underline}
 
.quote a:hover {
color: #FF9900;}
 
P {
background-color: maroon; 
color: white; 
width:250px; 
padding: 1px; 
border: solid 1px #456B8F; 
font: 10px helvetica, verdana, sans-serif; 
text-align:center}
Теги:
Получать обновления блога по почте:

Есть 11 коммент. к “Парсинг заголовков RSS лент со ссылкой и параметром title”

  1. sherhan
    Декабрь 10th, 2010 at 18:44
    1

    Я так понимаю, это возможность создать, что-то типа каталога лент…судя по примеру, но если не секрет для каких целей это делается!?

    • grafchitaru
      Декабрь 10th, 2010 at 18:46
      2

      У нас просто очень много всевозможных проектов, а будет еще больше. Это дает возможность проследить нашу активность в течение дня:) Можно и для чего-нибудь еще приспособить.

  2. CuriousOlga
    Декабрь 10th, 2010 at 20:26
    3

    Это выше моего понимания 😉

    • grafchitaru
      Декабрь 10th, 2010 at 20:29
      4

      Ну, если немного поучиться, то можно и разобраться)

  3. Dobrejshij
    Декабрь 11th, 2010 at 13:47
    5

    Как всегда горы дел и море идей? Это похвально. Ты только не пропадай так больше =)

    • grafchitaru
      Декабрь 11th, 2010 at 14:29
      6

      Постараюсь не пропадать) А идеи я реализовываю:) У тебя как дела?

  4. dzyo-san
    Декабрь 12th, 2010 at 07:55
    7

    Для меня RSS пока выше понимания и пока нет времени понять. Но страницу сохранил, может пригодится.

  5. dzyo-san
    Декабрь 12th, 2010 at 08:08
    8

    Меня другое озадачивает. Зарегистрировались на сайте 6 пользователей. Что им надо? У меня регистрация не обязательна. Может злоумышленники какие? Коменты тоже не оставляли.

    • grafchitaru
      Декабрь 12th, 2010 at 11:21
      9

      Дело все в том, что когда пользователь регистрируется, то на него остается ссылка в его профиле, которая индексируется и передает ТИЦ и pr.:)

  6. Bond
    Декабрь 20th, 2010 at 03:50
    10

    есть еще множество программ для парсинга Rss

  7. Наталья
    Июль 2nd, 2012 at 11:08
    11

    Римская бронзовая скульптура, этрусское золото и другие ценности были конфискованы у Робина Саймса (Robin Symes), арт-дилера, осужденного за торговлю крадеными ценностями. Об этом сообщает РИА Новости. Награды разыграют парные мужские экипажи.

Комментарии закрыты.