Ищу Нужен конвертер RSS в TXT

Тема в разделе "Софт", создана пользователем mercutio, 26 фев 2011.

  1. mercutio

    mercutio Создатель

    Регистр.:
    27 апр 2006
    Сообщения:
    32
    Симпатии:
    5
    Может кто сталкивался с таким. Нужна прога, которая периодически скачивала бы RSS и сохраняла бы его в виде txt-файла. В дальнейшем этот файл будет выводится на бегущую строку.
     
  2. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    если на php вот например так
    PHP:
    <?php
    // Если существует сегодняшняя кэшированная версия, отдаю её:
    $cache_file=$_SERVER['DOCUMENT_ROOT']."/tmp/google.txt";
    if (
    file_exists$cache_file ) && 
        
    date('Y-m-d',filemtime($cache_file))==
        
    date("Y-m-d"mktime(000date("m") , date("d"), date("Y")))){
       
    readfile($cache_file);
    }else{

    $itemNum=0;
    class 
    RSSParser1    {
        var 
    $channel_title="";
        var 
    $channel_website="";
        var 
    $channel_description="";
        var 
    $channel_pubDate="";
        var 
    $channel_lastUpdated="";
        var 
    $channel_copyright="";
        var 
    $title="";
        var 
    $link="";
        var 
    $description="";
        var 
    $pubDate="";
        var 
    $author="";
        var 
    $url="";
        var 
    $width="";
        var 
    $height="";
        var 
    $inside_tag=false;    
        function 
    RSSParser1($file,$encType)    {
                
    $this->xml_parser xml_parser_create($encType);
                
    xml_set_object$this->xml_parser, &$this );
                
    xml_set_element_handler$this->xml_parser"startElement""endElement" );
                
    xml_set_character_data_handler$this->xml_parser"characterData" );
                
    $fp = @fopen("$file","r") or die( "$file could not be opened" );
                while (
    $data fread($fp4096)){xml_parse$this->xml_parser$datafeof($fp)) or die( "XML error");}
                
    fclose($fp);
                
    xml_parser_free$this->xml_parser );
            }
        
        function 
    startElement($parser,$tag,$attributes=''){
            
    $this->current_tag=$tag;
            if(
    $this->current_tag=="ITEM" || $this->current_tag=="IMAGE"){
                
    $this->inside_tag=true;
                
    $this->description="";
                
    $this->link="";
                
    $this->title="";
                
    $this->pubDate="";
            }
        }
        
        function 
    endElement($parser$tag){
            switch(
    $tag){
                case 
    "ITEM":
                    
    $this->titles[]=trim($this->title);
                    
    $this->links[]=trim($this->link);
                    
    $this->descriptions[]=trim($this->description);
                    
    $this->pubDates[]=trim($this->pubDate);
                    
    $this->authors[]=trim($this->author);
                    
    $this->author=""$this->inside_tag=false;
                    break;
                case 
    "IMAGE":
                    
    $this->channel_image="<img src=\"".trim($this->url)."\" width=\"".trim($this->width)."\" height=\"".trim($this->height)."\" alt=\"".trim($this->title)."\" border=\"0\" title=\"".trim($this->title)."\" />";
                    
    $this->title=""$this->inside_tag=false;
                default:
                    break;
            }
        }
        
        function 
    characterData($parser,$data){
            if(
    $this->inside_tag){
                switch(
    $this->current_tag){
                    case 
    "TITLE":
                        
    $this->title.=$data; break;
                    case 
    "DESCRIPTION":
                        
    $this->description.=$data; break;
                    case 
    "LINK":
                        
    $this->link.=$data; break;
                    case 
    "URL":
                        
    $this->url.=$data; break;                    
                    case 
    "WIDTH":
                        
    $this->width.=$data; break;
                    case 
    "HEIGHT":
                        
    $this->height.=$data; break;
                    case 
    "PUBDATE":
                        
    $this->pubDate.=$data; break;
                    case 
    "AUTHOR":
                        
    $this->author.=$data;    break;
                    default: break;                                    
                }
    //end switch
            
    }else{
                switch(
    $this->current_tag){
                    case 
    "DESCRIPTION":
                        
    $this->channel_description.=$data; break;
                    case 
    "TITLE":
                        
    $this->channel_title.=$data; break;
                    case 
    "LINK":
                        
    $this->channel_website.=$data; break;
                    case 
    "COPYRIGHT":
                        
    $this->channel_copyright.=$data; break;
                    case 
    "PUBDATE":
                        
    $this->channel_pubDate.=$data; break;                    
                    case 
    "LASTBUILDDATE":
                        
    $this->channel_lastUpdated.=$data; break;                
                    default:
                        break;
                }
            }
        }
    }
    $forex1 = new RSSParser1("http://news.google.com/news?pz=1&cf=all&ned=us&hl=en&q=forex&cf=all&output=rss","utf-8");

    $forex1_RSSmax=4;
    $result="";
    if(
    $forex1_RSSmax==|| $forex1_RSSmax>count($forex1->titles))$forex1_RSSmax=count($forex1->titles);
    for(
    $itemNum=0;$itemNum<$forex1_RSSmax;$itemNum++)
            
            {
        
            
    $title=$forex1->titles[$itemNum];
            
    $descr=$forex1->descriptions[$itemNum];
            
    $descr=str_replace('<a','<noindex><a rel="nofollow" target="_blank"',$descr);
            
    $descr=str_replace('<table border="0" cellpadding="2" cellspacing="7" style="vertical-align:top;"><tr><td width="80" align="center" valign="top">','',$descr);
            
    $descr=str_replace('</td><td valign="top" class="j">','',$descr);
            
    $descr=str_replace('</td></tr></table>','',$descr);
            
    $descr=str_replace('<img','<img align="left" style="padding:5px"',$descr);
            
    $descr=str_replace('</a>','</a></noindex>',$descr);
            
    $result1="<h2>".$title."</h2><ul>".$descr."</ul>";
            
    $result=$result.$result1;
           }

    @
    file_put_contents($cache_file,$result);
    echo 
    $result;
    }
    ?>
    здесь правда сделано немного для других целей тянет раз в сутки выдачу Гугла по ключевому слову и выводит ввиде информера на странице сайта
     
  3. mercutio

    mercutio Создатель

    Регистр.:
    27 апр 2006
    Сообщения:
    32
    Симпатии:
    5
    Спасибо. Желательно, все-таки, офлайновую софтину найти.