Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не работает парсер RSS :(

Сообщения:  [1-9] 

 
 автор: Tema   (25.04.2006 в 19:53)   письмо автору
 
   для: Trianon   (25.04.2006 в 13:19)
 

Ну вот смотрите, парсером мы выводим заголовки и краткие описания с датой, а ссылка ведет на другую страницу, т.е. откуда новости берутся. А надо чтобы эта страница лежала на локальном сервере. Чтобы посетитель с сайта не уходил.

   
 
 автор: Trianon   (25.04.2006 в 13:19)   письмо автору
 
   для: Tema   (25.04.2006 в 13:13)
 

Смотря что понимать под "сграбить".
И вообще, это новая тема.

   
 
 автор: Tema   (25.04.2006 в 13:13)   письмо автору
 
   для: Trianon   (25.04.2006 в 11:08)
 

Спасибо!
Подскажите еще как можно сграбить страницы, на которые ведут ссылки с RSS?
К примеру http://www.merlion.ru/print/reviews/review-830/?rss

   
 
 автор: Trianon   (25.04.2006 в 11:08)   письмо автору
 
   для: Tema   (25.04.2006 в 10:39)
 

Тогда уж стоит подточить как-то так...
<?php
  
function StripXmlTags($Str)
  {
    
$Str=ereg_replace('<[/a-z]+>'' '$Str);
    return(
$Str);
  }
  
$Url='http://www.merlion.ru/rss/reviews/';
  
$Months=array('Jan'=>'января''Feb'=>'февраля''Mar'=>'марта''Apr'=>'апреля''May'=>'мая''Jun'=>'июня''Jul'=>'июля''Aug'=>'августа''Sep'=>'сентября','Oct'=>'октября','Nov'=>'ноября','Dec'=>'декабря');
  
$rss file_get_contents($Url);
  if(
$rss)
  {
    
$Content explode("\n"str_replace("</""\n</"$rss));
    
$ItemExists=false;
    
$Num=0;
//... и т.д.

но всё равно это не нормальный разбор, а голое шаманство. Полно ресурсов найдется, на которых этот (и им подобные скрипты) споткнутся.

   
 
 автор: Tema   (25.04.2006 в 10:39)   письмо автору
 
   для: cheops   (25.04.2006 в 10:30)
 

Все что не пробовал нормально обрабатывает. А вот этот неправильно, не пойму почему? Хелп ми плиз.

   
 
 автор: cheops   (25.04.2006 в 10:30)   письмо автору
 
   для: Trianon   (25.04.2006 в 10:23)
 

Ошибся, почему-то показалось, что речь идёт CSV...

PS Собственно наверное ничем.

   
 
 автор: Trianon   (25.04.2006 в 10:23)   письмо автору
 
   для: cheops   (24.04.2006 в 23:28)
 

Как CSV-парсер будет разбирать XML?

И пардон, не в тему, но всё же...
Вы достаточно часто предлаагете этот скрипт, как я заметил.
В чем преимущества этого скрипта и ему подобных перед функцией fgetcsv()?

   
 
 автор: cheops   (24.04.2006 в 23:28)   письмо автору
 
   для: Tema   (24.04.2006 в 16:48)
 

Лучше ориентироваться на скрипт из раздела downloads http://www.softtime.ru/info/csv.php.

   
 
 автор: Tema   (24.04.2006 в 16:48)   письмо автору
 
 

Скажите плз, почему парсер(взят с форума) неправильно обрабатывает RSS http://www.merlion.ru/rss/reviews/

<?php
  
function StripXmlTags($Str)
  {
    
$Str=ereg_replace('<[/a-z]+>|&lt;br&gt;|&apos;'''$Str);
    return(
$Str);
  }
  
$Url='http://www.merlion.ru/rss/reviews/';
  
$Months=array('Jan'=>'января''Feb'=>'февраля''Mar'=>'марта''Apr'=>'апреля''May'=>'мая''Jun'=>'июня''Jul'=>'июля''Aug'=>'августа''Sep'=>'сентября','Oct'=>'октября','Nov'=>'ноября','Dec'=>'декабря');
  
$rss=@fopen($Url'r');
  if(
$rss)
  {
    
$Content=file($Url);
    
$ItemExists=false;
    
fclose($rss);
    
$Num=0;
    for(
$i=0$i<count($Content); $i++)
    {
      if(
strpos($Content[$i], '<item>') !== false)
        
$ItemExists=true;
      if(
$ItemExists==true)
      {
        if(
strpos($Content[$i], '<title>') !== false)
          
$News[$Num]['title']=StripXmlTags($Content[$i]);
        if(
strpos($Content[$i], '<link>') !== false)
          
$News[$Num]['link']=StripXmlTags($Content[$i]);
        if(
strpos($Content[$i], '<description>') !== false)
          
$News[$Num]['description']=StripXmlTags($Content[$i]);
        if(
strpos($Content[$i], '<pubDate>') !== false)
        {
          
$News[$Num]['pubDate']=StripXmlTags($Content[$i]);
          foreach(
$Months as $EngName => $RusName)
            
$News[$Num]['pubDate']=str_replace($EngName$RusName$News[$Num]['pubDate']);
          
$Num++;
        }
      } 
    } 
    for(
$i=0$i<count($News); $i++)
    {
      Print
"<b>{$News[$i]['title']}</b><hr>";
      Print
"{$News[$i]['pubDate']}<hr>";
      Print
"{$News[$i]['description']}<hr>";
      Print
"<a href='{$News[$i]['link']}' target=_blank>подробнее &gt;&gt;</a><hr>";
    }
  } else
  {
     echo 
"К сожалению новостей сегодня не будет";
     exit;
  }
?>

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования