triton4ik
Новичок
Как правильно вывести новости RSS
-~{}~ 30.04.06 18:27:
Как зациклить, с перескакиванием к следующиму заголовку, пока не кончится документ.
Вот к примеру есть
<item>ТУТ что то написано и я это уже вывел</item>
<item>И тут что то, но это не выводится</item>
<item>Продолжение то же есть, вот так вот, но это то же не выводится</item>
-~{}~ 30.04.06 19:21:
$rss_item_titles = $rss_item_titles[2][0];
$rss_item_links = $rss_item_links[2][0];
$rss_item_descriptions = $rss_item_descriptions[2][0];
где 0 должен увеличиваться, пока не кончится документ. Как узнать на сколько увеличивать.
Проблема в том, что код ниже выводит только самую первую новость, а как сделать так что бы он отрабатывал весь документ до конца, не исключено, что где то и есть ошибка. Спасибо.
Справка:
http://ru.php.net/manual/ru/function.preg-match-all.php
http://ru.php.net/manual/ru/function.preg-match-all.php
http://ru2.php.net/strings
http://ru.php.net/xml
PHP:
<?
Error_Reporting(E_ALL & ~E_NOTICE);
/*
[url]http://vzglyad.ru/export/yandex.xml[/url]
[url]http://news.yandex.ru/index.rss[/url]
*/
$triton->URL = 'http://news.yandex.ru/index.rss';
$triton->Enter = '<br>';
$triton->TableStart = "<table cellpadding='0' cellspacing='0' width='100%'><tr>";
$triton->Table1 = "<td height='46' width='95' style='border-right-style: solid; border-right-width: 1px'>";
$triton->Table2 = "<td height='46' width='100%'>";
$triton->ImageStart = "<img border='0' src='";
$triton->ImageEnd = "'>";
$triton->LinkStart = "<a href='";
$triton->LinkTitleS = "title='";
$triton->LinkTitleE = "'";
$triton->LinkAltS = "alt='";
$triton->LinkAltE = "'";
$triton->LinkEnd = "'";
$triton->LinkEnd1 = ">";
$triton->LinkEnd2 = "</a>";
$triton->Hr = "<hr>";
$triton->Td = "</td>";
$triton->Trz = "</tr>";
$triton->Tr = "<tr>";
$triton->Table3 = "<td height='404' width='100%' colspan='2'>";
$triton->TableZ = "</table>";
$triton->Li = "<li>";
$triton->Liz = "</li>";
?>
<?
$content = file_get_contents($triton->URL, 4096);
preg_match_all("'<channel>(.+?)<title>(.*?)</title>(.+?)</channel>'si",$content,$rss_title);
preg_match_all("'<channel>(.+?)<link>(.*?)</link>(.+?)</channel>'si",$content,$rss_link);
preg_match_all("'<channel>(.+?)<description>(.*?)</description>(.+?)</channel>'si",$content,$rss_description);
preg_match_all("'<channel>(.+?)<lastBuildDate>(.*?)</lastBuildDate>(.+?)</channel>'si",$content,$rss_lastBuildDate);
preg_match_all("'<channel>(.+?)<language>(.*?)</language>(.+?)</channel>'si",$content,$rss_language);
preg_match_all("'<image>(.+?)<title>(.*?)</title>(.+?)</image>'si",$content,$rss_image_title);
preg_match_all("'<image>(.+?)<url>(.*?)</url>(.+?)</image>'si",$content,$rss_image_url);
preg_match_all("'<image>(.+?)<link>(.*?)</link>(.+?)</image>'si",$content,$rss_image_link);
$rss_title = $rss_title[2][0];
$rss_link = $rss_link[2][0];
$rss_description = $rss_description[2][0];
$rss_lastBuildDate = $rss_lastBuildDate[2][0];
$rss_language = $rss_language[2][0];
$rss_image_title = $rss_image_title[2][0];
$rss_image_url = $rss_image_url[2][0];
$rss_image_link = $rss_image_link[2][0];
/*Начало*/
echo $triton->Hr;
echo $triton->TableStart ;
echo $triton->Table1;
echo $triton->LinkStart;
echo $rss_image_link;
echo $triton->LinkEnd;
echo $triton->LinkTitleS;
echo $rss_image_title;
echo $triton->LinkTitleE;
echo $triton->LinkEnd1;
echo $triton->ImageStart;
echo $rss_image_url;
echo $triton->ImageEnd;
/*Начало право*/
echo $triton->LinkEnd2;
echo $triton->Table2;
echo $triton->LinkStart;
echo $rss_link;
echo $triton->LinkEnd;
echo $triton->LinkTitleS;
echo $rss_lastBuildDate;
echo $triton->LinkTitleE;
echo $triton->LinkEnd1;
echo $rss_title;
echo $triton->LinkEnd2;
echo $triton->Enter;
echo $rss_description;
echo "<language>$rss_language</language>";
echo $triton->Hr;
echo $triton->Td;
echo $triton->Trz;
echo $triton->Tr;
echo $triton->Hr;
/*Основа*/
echo $triton->Table3;
preg_match_all("'<item>(.+?)<title>(.*?)</title>(.+?)</item>'si",$content,$rss_item_titles);
preg_match_all("'<item>(.+?)<link>(.*?)</link>(.+?)</item>'si",$content,$rss_item_links);
preg_match_all("'<item>(.+?)<description>(.*?)</description>(.+?)</item>'si",$content,$rss_item_descriptions);
$rss_item_titles = $rss_item_titles[2][0];
$rss_item_links = $rss_item_links[2][0];
$rss_item_descriptions = $rss_item_descriptions[2][0];
echo $triton->Li;
echo $rss_item_titles;
echo $triton->Enter;
echo $rss_item_links;
echo $triton->Enter;
echo $rss_item_descriptions;
echo $triton->Liz;
echo $triton->Enter;
echo $triton->Td;
echo $triton->Trz;
echo $triton->TableZ ;
?>
Как зациклить, с перескакиванием к следующиму заголовку, пока не кончится документ.
Вот к примеру есть
<item>ТУТ что то написано и я это уже вывел</item>
<item>И тут что то, но это не выводится</item>
<item>Продолжение то же есть, вот так вот, но это то же не выводится</item>
-~{}~ 30.04.06 19:21:
$rss_item_titles = $rss_item_titles[2][0];
$rss_item_links = $rss_item_links[2][0];
$rss_item_descriptions = $rss_item_descriptions[2][0];
где 0 должен увеличиваться, пока не кончится документ. Как узнать на сколько увеличивать.
