Парсинг заголовков RSS лент со ссылкой и параметром title
Если вы хотите выводить на своем сайте хотите добавить заголовки произвольных 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} |
Я так понимаю, это возможность создать, что-то типа каталога лент…судя по примеру, но если не секрет для каких целей это делается!?
У нас просто очень много всевозможных проектов, а будет еще больше. Это дает возможность проследить нашу активность в течение дня:) Можно и для чего-нибудь еще приспособить.
Это выше моего понимания 😉
Ну, если немного поучиться, то можно и разобраться)
Как всегда горы дел и море идей? Это похвально. Ты только не пропадай так больше =)
Постараюсь не пропадать) А идеи я реализовываю:) У тебя как дела?
Для меня RSS пока выше понимания и пока нет времени понять. Но страницу сохранил, может пригодится.
Меня другое озадачивает. Зарегистрировались на сайте 6 пользователей. Что им надо? У меня регистрация не обязательна. Может злоумышленники какие? Коменты тоже не оставляли.
Дело все в том, что когда пользователь регистрируется, то на него остается ссылка в его профиле, которая индексируется и передает ТИЦ и pr.:)
есть еще множество программ для парсинга Rss
Римская бронзовая скульптура, этрусское золото и другие ценности были конфискованы у Робина Саймса (Robin Symes), арт-дилера, осужденного за торговлю крадеными ценностями. Об этом сообщает РИА Новости. Награды разыграют парные мужские экипажи.