Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > импортировать rss-новости с другого сайта


Автор: Kostromi4 27.5.2008, 08:34
Появилась такая задача - нужно импортировать rss-новости с другого сайта и показывать у себя. Только мне не требуется как тут описано выше полный показ новости. Сразу оговорюсь что в php знания очень слабые, поэтому прошу совета знающих. Вот нашел скрипт который вроде бы должен все как раз делать, но я его вставляю, вроде отрабатывает без ошибок, но ничего при этом не отображается... Может кто нибудь может подсказать ? возможно у кого то есть точно работающее решение по данному вопросу
Код
[php]
// кешируем RSS файлик
// место куда пишем файлик кэша
$filename = $_SERVER['DOCUMENT_ROOT']."/cache/phpnews.rss";

// проверяем насколько старый файлик
$modif=time()-@filemtime ("$filename");

// если в кэше нет файла или он слишком старый - обновляем
if(!file_exists($filename) || $modif>"3600")
  {
   $rss = file_get_contents("http://www.php.net/news.rss");
    
   $handle = fopen ("$filename", "w");
   
   fwrite($handle, $rss);
    
   fclose($handle);
  }

// читаем файлик с помощью Simple XML
$RSS = simplexml_load_file($filename);

// для любопытных что жк мы там получили :-)
//VAR_DUMP($RSS);

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

    // при надобности перекодируем полученные данные в нужную кодировку
    //$item->desc_ription = iconv("UTF-8","WINDOWS-1251",$item->desc_ription); 
    //$item->title       = iconv("UTF-8","WINDOWS-1251",$item->title); 

    //формируем ссылку и выводим данные   
    echo "<a href=\"".$item->link."\">".$item->title."</a><br>$item->desc_ription<br><br>";

    }[
/php] 

Автор: A1ekcandr 27.5.2008, 10:42
to Kostromi4

во 1х попробуйте добавить такие строки в начало скрипта
Код

error_reporting (E_ALL);
ini_set("display_errors", "on");


оично у меня пишет такую ошибку, что собственно естественно:


Fatal error: Call to undefined function: simplexml_load_file() in /mnt/disk1/home/ts/autoparts24/vingrad.php on line 19

Автор: MoLeX 27.5.2008, 10:49

 ! 
MoLeX
Kostromi4, следует создавать СВОЮ тему а не поднимать старую!!!



A1ekcandr сорри. я на денвере смотрел. у меня они сразу включены и значения не придал.  

Автор: A1ekcandr 27.5.2008, 11:03
ну как зачем по моему мнению эти строки включают отображение ошибок, если они отключены

Автор: Kostromi4 28.5.2008, 08:10
Цитата(MoLeX @  27.5.2008,  10:49 Найти цитируемый пост)
Kostromi4, следует создавать СВОЮ тему а не поднимать старую!!!

обычно если тема похожая то зачем создавать ее клон, тем более система форума у вас сама выдала мне схожую тему...?


A1ekcandr, Насчет ошибок... я почему спрашиваю про ошибки... просто у меня есть еще скрипт, он практически идентичен этому, за исключением того, то скрипт который я сначала выложил сделан по php5 , а вот этот видимо под версии ниже
Код

[php]
// кешируем RSS файлик
// место куда пишем файлик кэша
$filename = $_SERVER['DOCUMENT_ROOT']."/cache/phpnews.rss";

// проверяем насколько старый файлик
$modif=time()-@filemtime ("$filename");

// если в кэше нет файла или он слишком старый - обновляем
if(!file_exists($filename) || $modif>"3600")
  {
   $rss = file_get_contents("http://www.php.net/news.rss");
    
   $handle = fopen ("$filename", "w");
   
   fwrite($handle, $rss);
    
   fclose($handle);
  }


// подключаем либу из набора PEAR для разбора rss
require_once("XML/RSS.php");
    
    $rss =& new XML_RSS("$filename");

    $rss->parse();
                       
    foreach ($rss->getItems() as $value) {
    
            //VAR_DUMP($value); exit;  //- это так на всякий случай если надо посмотреть что там лежит :-)
             
            // формируем строку с новостями
            $page = $page."<b>".$value['dc:date']."</b><a href=\"".$value['link']."\" class=\"menu\">"." ".$value['title']. "</a><br>" .$value['description'] . "\n";
    }   

// выводим все что получили
echo"$page";
[
/php] 

и вот в этом у меня сразу несколько ошибок выдает...
А никто не пользовался программой zfeeder. Она ставится на сайт... типа в корень ее закидываешь, там есть добавление rss каналов... я поставил ее, несколько каналов у меня скэшировалось.. но как их отобразить че то я так и не понял...

Автор: MoLeX 28.5.2008, 11:45
Цитата(Kostromi4 @  28.5.2008,  08:10 Найти цитируемый пост)
обычно если тема похожая то зачем создавать ее клон

если не ошибаюсь та тема за 2005 год, она по сути умерла.

Цитата(Kostromi4 @  28.5.2008,  08:10 Найти цитируемый пост)
система форума у вас сама выдала мне схожую тему...?

она выдает для того чтобы пользователь увидел что такие темы были и он может найти ответ на свой вопрос, если нет - то создавай.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)