Вывод новостей с rss другого сайта

Статус
В этой теме нельзя размещать новые ответы.

Yus

Гуру форума
Регистрация
12 Янв 2008
Сообщения
255
Реакции
93
Гуру php и подобные, к вам насущный вопрос;)

Цель.
Есть статичная страничка на моём сайте - news.php
Нужно, чтобы на ней выводились новости с нескольких других сайтов, с их rss.

То есть нужно, чтобы заходя на страничку пользователь видел заголовок новости, саму новость и ссылку на источник. Чтобы можно было вставить ЭТО инклудом в news.php и настроить через стили всё это.

Думаю, что реализовать это не трудно. Может кто сталкивался? или есть готовые скрипты?:nezn:

Заранее безмерно благодарен!
 
Может кто-нибудь всё-таки сталкивался с подобным?! вопро-то вроде бы элементарен....
 
Вот тебе образец кода, дальше сам, надеюсь... Если нет, пиши чего непонятно, хотя чего уж тут непонятного... Все банально просто:

PHP:
<?
$file = file_get_contents('http://news.tut.by/rss/all.rss');

$file1 = preg_match_all('|<description>(.+)</description>|U',$file,$frazes);
$file1 = preg_match_all('|<title>(.+)</title>|U',$file,$title);
$file1 = preg_match_all('|<link>(.+)</link>|U',$file,$link);
$file1 = preg_match_all('|<pubDate>(.+)</pubDate>|U',$file,$pub);


for($i=2;$i<15;$i++){ 

echo "<p><div id=header><a target=_blank href=".$link[1][$i]."><b>".$title[1][$i]."</b></a> ".$pub[1][$i-2]."<br>".$frazes[1][$i-1]."\r\n</div></p>";
}
?>
 
  • Нравится
Реакции: Yus
Вот тебе образец кода, дальше сам, надеюсь... Если нет, пиши чего непонятно, хотя чего уж тут непонятного... Все банально просто:

PHP:
<?
$file = file_get_contents('http://news.tut.by/rss/all.rss');

$file1 = preg_match_all('|<description>(.+)</description>|U',$file,$frazes);
$file1 = preg_match_all('|<title>(.+)</title>|U',$file,$title);
$file1 = preg_match_all('|<link>(.+)</link>|U',$file,$link);
$file1 = preg_match_all('|<pubDate>(.+)</pubDate>|U',$file,$pub);


for($i=2;$i<15;$i++){ 

echo "<p><div id=header><a target=_blank href=".$link[1][$i]."><b>".$title[1][$i]."</b></a> ".$pub[1][$i-2]."<br>".$frazes[1][$i-1]."\r\n</div></p>";
}
?>


Огромная, конечно, благодарность. Эх...бъю себя по рукам, что не учил php когда на это было время.

ps теперь чтобы перефигачить это добро под rss ленту с яндекса убью неделю:D

Добавлено через 16 минут
Вот тебе образец кода, дальше сам, надеюсь... Если нет, пиши чего непонятно, хотя чего уж тут непонятного... Все банально просто:

Смотри, немного изменил вывод, у меня получился такой код:
PHP:
<?
$file = file_get_contents('http://news.yandex.ru/Russia/metallurgy.rss');

$file1 = preg_match_all('|<description>(.+)</description>|U',$file,$frazes);
$file1 = preg_match_all('|<title>(.+)</title>|U',$file,$title);
$file1 = preg_match_all('|<link>(.+)</link>|U',$file,$link);
$file1 = preg_match_all('|<pubDate>(.+)</pubDate>|U',$file,$pub);


for($i=2;$i<10;$i++){ 

echo "<p><b>".$title[1][$i]."</b><br>Дата: ".$pub[1][$i-2]."<br>".$frazes[1][$i-1]."<br><a target=_blank href=".$link[1][$i].">Источник</a>\r\n</p>";
}
?>
И такой результат:
ЧТПЗ и ПНТЗ сообщили об убытках
Дата: Sat, 28 Mar 2009 08:00:00 +0300
По данным ведомства, исполнительное производство было возбуждено на основании соответствующего решения арбитражного суда Москвы.
Для просмотра ссылки Войди или Зарегистрируйся
Приставы арестовали имущество торгового дома ГМЗ
Дата: Sat, 28 Mar 2009 08:00:00 +0300
Петр Сумин поддержал необходимость скорейшей реализации проекта, особенно в условиях кризиса, поскольку именно модернизация и техническое перевооружение производства повысит конкурентоспособность российских металлургических предприятий на мировом рынке.
Для просмотра ссылки Войди или Зарегистрируйся
Гендиректор АМЗ доложил Петру Сумину о ситуации на предприятии
Дата: Fri, 27 Mar 2009 13:41:11 +0300
При этом министр отметил, что по общему объему отгруженной химической продукции, который за первые 2 месяца 2009 года составил 69 млрд. рублей, регион по-прежнему находится в ПФО на 1-ом месте.
Для просмотра ссылки Войди или Зарегистрируйся
Вопрос №1:
Как сделать вывод даты в формате не как сейчас, а например:
Вопрос №2:
Хочу сделать вывод источника как:
Источник: Для просмотра ссылки Войди или Зарегистрируйся
А если просто выставляю .$link[1][$i]. в анкор, то выдаёт какую-то хрень.
Вопрос №3:
Можно ли добавить две яндекс ленты в источники? ли три? чтобы он их вместе обрабатывал и выводил?
 
есть функция удобаня очень



Данные лучше писать в базу и потом выводить на сайт, или генерировать статический сайт по расписанию и инклудить его потом.
 
PHP:
<br><a target=_blank href=".$link[1][$i].">Источник</a>\r\n</p>

у себя замени на это:

PHP:
<br>Источник: <a target=_blank href=".$link[1][$i].">".$link[1][$i]."</a>\r\n</p>

По поводу даты - надо ее форматировать, см. документацию к PHP, выбирай какой тебе надо формат, мне счас просто некогда копаться. По идее должно работать, хотя не проверял, проверь.

Вставояй скока хош себе лент, но на каждую по такому циклу, но учти, что это ж идет запрос к удаленному среверу + обработка ответа, короче если по правильному, то тебе NoN написал, как надо. Впрочем, для 1 ленты сойдет.
 
  • Нравится
Реакции: Yus
Хороший способ, мне понравилось :) Выкладываю готовое решение для вашего способа:

Код:
<ul><?

$url = 'http://news.tut.by/rss/index.rss'; // поставить адрес ленты
$rss = simplexml_load_file($url);

foreach ($rss->channel->item as $item)
{

$rss1 = $item->link;
echo "<li><a href=".$rss1."><b>".$item->title."</b></a> <small>".$item->pubDate."</small> <br>
<blockquote>".$item->description."</blockquote>";
}

?></ul>
 
virtualbrest как ограничить кол-во новостей Можно ли таким способом забрать полную новость?
 
virtualbrest как ограничить кол-во новостей Можно ли таким способом забрать полную новость?
ограничеть кол-во можно счетчиком, что то типо:
PHP:
$i = 1;
$n = 5;
foreach...
if($i<$n) break;
$i++;
полностью новости в RSS не публикуются, вам тогда по ссылке надо забирать новость и парсить ее.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху