[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: RSS импорт - что исправить, для показа заголовка?
Ильдар
Вот самый примитивный код на PHP, импортирующий новости из RSS новости.
Не знаю, что нужно исправить, что-бы скрипт показывал только заголовок и ссылку новости?
Сам начинающий, но срочно надо это сделать... Сам не могу разобраться, изучаю php всего 1-2 недели...
Ребят, кто сможет, кто знает, буду очень Вам благодарен!

<?
function
& okRss($url){
$data=join('',file($url));
$matchTitle='!<item>.*?<title>(.*?)<\/title>.*?<\/item>!is';
preg_match_all($matchTitle,$data,$title);
$rss['title']=$title[1];
$matchLink='!<item>.*?<link>(.*?)<\/link>.*?<\/item>!is';
preg_match_all($matchLink,$data,$link);
$rss['link']=$link[1];
$matchDesc='!<item>.*?<desсriрtion>(.*?)<\/desсriрtion>.*?<\/item>!is';
preg_match_all($matchDesc,$data,$desc);
$rss['desc']=$desc[1];
return $rss;
}
$rss=okRss("http://habrahabr.ru/rss/");
for($i=0; $i<count($rss['title']); $i++){
echo "<a href='{$rss ['link'][$i]}' target=_blank>{$rss['title'][$i]}</a><br>
{
$rss['desc'][$i]}<br><br>";
}
?>





Спустя 1 день, 17 часов, 34 минуты, 52 секунды (8.12.2009 - 15:41) Raskolnikoff написал(а):
Нужно заменить
echo "<a href='{$rss ['link'][$i]}' target=_blank>{$rss['title'][$i]}</a><br>
{
$rss['desc'][$i]}<br><br>";

на
echo "<a href='{$rss ['link'][$i]}' target=_blank>{$rss['title'][$i]}</a><br>";

Как то так)

Спустя 1 день, 1 час, 16 минут, 54 секунды (9.12.2009 - 16:57) Ильдар написал(а):
Спасибо!!! Догадался)) А что нужно сделать, что бы только нужное колличество новостей считывала? Просто в .xml файле может быть сколь угодно много новостей.

Спустя 5 часов, 34 минуты, 14 секунд (9.12.2009 - 22:32) Ильдар написал(а):
C предыдущим вопросом разобрался, вот новый:)

Как уменьшить строку, например до... 50 символов?

Спустя 8 минут, 43 секунды (9.12.2009 - 22:40) Romms написал(а):
substr();
$rss['desc']=substr($desc[1], 0, 50);
пойдёт?

Спустя 1 час, 12 минут, 21 секунда (9.12.2009 - 23:53) Guest написал(а):

<?
function
& okRss($url){
$data=join('',file($url));
$matchTitle='!<item>.*?<title>(.*?)<\/title>.*?<\/item>!is';
preg_match_all($matchTitle,$data,$title);
$rss['title']=substr($title[1], 0, 50);
$matchLink='!<item>.*?<link>(.*?)<\/link>.*?<\/item>!is';
preg_match_all($matchLink,$data,$link);
$rss['link']=$link[1];
return $rss;
}
$rss=okRss("http://pravda.ru/export.xml");
for($i=0; $i<4; $i++){
echo "<a style='text-decoration:none; color: #00ffff; float: left; font-size: 14px; ' href='{$rss ['link'][$i]}' target=_blank>{$rss['title'][$i]}</a><br>";
}
?>


Тут я заменил:
$rss['title']=$title[1];
на:
$rss['title']=substr($title[1], 0, 50);

Выводит полную ерунду:

A
r
r
a
y

!!! да-да... в строке даже намека на array нет.

По идее хочу вот так:

1 Новость бла-бла-бла...
2 Новость бла-бла-бла...
3 Новость бла-бла-бла...
4 Новость бла-бла-бла...

Спустя 1 час, 15 минут, 24 секунды (10.12.2009 - 01:08) Guest написал(а):
Все, решил:

<?
function
& okRss($url){
$data=join('',file($url));
$matchTitle='!<item>.*?<title>(.*?)<\/title>.*?<\/item>!is';
preg_match_all($matchTitle,$data,$title);
#$rss['title']=substr($title[1], 0, 50);
$rss['title']=$title[1];
$matchLink='!<item>.*?<link>(.*?)<\/link>.*?<\/item>!is';
preg_match_all($matchLink,$data,$link);
$rss['link']=$link[1];
return $rss;
}
$rss=okRss("export.xml");
for($i=0; $i<5; $i++)
{
$rss['title'][$i]=mb_substr($rss['title'][$i], 0, 30, "utf-8");
echo "<a style='text-decoration:none; color: #00ffff; float: left; font-size: 14px; ' href='{$rss ['link'][$i]}' target=_blank>"."{$rss['title'][$i]}"."</a><br>";
}
?>

Спустя 13 минут, 53 секунды (10.12.2009 - 01:22) 7153423 написал(а):
а почему не использовать simplexml + DOMDocument? ну кроме разницы в производительности конечно.. но намного удобнее

Спустя 3 дня, 11 часов, 24 минуты, 15 секунд (13.12.2009 - 12:46) Ильдар написал(а):
<?
function
& okRssGG($url){
$data=join('',file($url));
$matchTitle='!<item>.*?<title>(.*?)<\/title>.*?<\/item>!is';
preg_match_all($matchTitle,$data,$title);
#$rss['title']=substr($title[1], 0, 50);
$rss['title']=$title[1];
$matchLink='!<item>.*?<link>(.*?)<\/link>.*?<\/item>!is';
preg_match_all($matchLink,$data,$link);
$rss['link']=$link[1];
return $rss;
}
$rss=okRssGG("http://creep.ru/rss.xml");
for($i=0; $i<8; $i++)
{
$rss['title'][$i]=mb_substr($rss['title'][$i], 0, 30, "utf-8");
echo "<a style='text-decoration:none; color: #00ffff; float: left; font-size: 14px; ' href='{$rss ['link'][$i]}' target=_blank>"."{$rss['title'][$i]}"."...</a><br>";
}
?>


уложил этот файл на хостинг, но тут ошибка:

Warning: file(http://creep.ru/rss.xml): failed to open stream: Operation not permitted in /home/y/yawo.h16.ru/WWW/index.php on line 3

Warning: join(): Bad arguments. in /home/y/yawo.h16.ru/WWW/index.php on line 3

Спустя 2 часа, 6 минут, 47 секунд (13.12.2009 - 14:53) Romms написал(а):
а что в третей строчке?

Спустя 1 час, 39 минут, 33 секунды (13.12.2009 - 16:33) Guest написал(а):
$data=join('',file($url));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.