Генерация несколиких rss каналов

Тема в разделе "PHP", создана пользователем pavlenkora, 24 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    195
    Симпатии:
    80
    Есть функция генерации rss канала! Она генерирует один канал с заданным количеством записей (numnrss)! Помогите переделать так, чтоб функция генерировала заданное количество rss каналов с заданым количеством записей :thenks::thenks::thenks:
    PHP:
    function GetRSS(){
        global $keys, $urls, $way, $lang, $onepage;
        global $numnrss;
        
        $head='<?xml version="1.0" encoding="[ENC]"?'.'>'."\n\t".'<rss version="2.0">'."\n\t".'<channel>'."\n\t".'<title>[KEY]</title>'."\n\t".'<link>[SITE]</link>'."\n\t".'<description>[TEXT]</description>'."\n\t".'<lastBuildDate>[DATE]</lastBuildDate>';
        $shab='<item>'."\n\t".'<title>[KEY]</title>'."\n\t".'<link>[URL]</link>'."\n\t".'<description>[TEXT]</description>'."\n\t".'<pubDate>[DATE]</pubDate>'."\n\t".'<guid isPermaLink="true">[URL]</guid>'."\n\t".'</item>';
        $bottom='</channel></rss>';

        if ($onepage=="on"){$key=GetUP($keys[0][0])." RSS";} else {$key=GetUP($keys[0])." RSS";}
        
        $se = array('&OElig','&oelig','&Scaron','&scaron','&Yuml','&circ','&tilde','&ensp','&emsp','&thinsp','&zwnj','&zwj','&lrm','&rlm','&ndash','&mdash','&lsquo','&rsquo','&sbquo','&ldquo','&rdquo','&bdquo','&dagger','&Dagger','&permil','&lsaquo','&rsaquo','?','&euro');
            
        $text=GetMyText('АРАКАДАБРА', mt_rand(1,2));
        $text=str_replace('"', "&quot;", $text);
        $text=str_replace('<', "&lt;", $text);
        $text=str_replace('>', "&gt;", $text);
        $text=str_replace('&', "&amp;", $text);
        $text=str_replace($se, '', $text);
        
        if ($lang=="ru") {$enc="windows-1251";} else {$enc="UTF-8";}
        
        $head=str_replace("[ENC]", $enc, $head);
        $head=str_replace("[TEXT]", $text, $head);
        $head=str_replace("[KEY]", $key, $head);
        $head=str_replace("[SITE]", $way, $head);
        $head=str_replace("[DATE]", date("r"), $head);
        
        $le=sizeof($keys);
        if ($le>$numnrss) $le=$numnrss;
        for ($m=0; $m<$le; $m++){
            if ($onepage=="on"){$key=GetUP($keys[$m][0]);} else {$key=GetUP($keys[$m]);}
            
            $text=GetMyText('АРАКАДАБРА', mt_rand(2,4));
            $text=str_replace('"', "&quot;", $text);
            $text=str_replace('<', "&lt;", $text);
            $text=str_replace('>', "&gt;", $text);
            $text=str_replace('&', "&amp;", $text);
            $text=str_replace($se, '', $text);
        
            $tt=str_replace("[URL]", $way."/".str_replace("&", "&amp;", $urls[$m][1]), $shab);
            $tt=str_replace("[DATE]", date("r", (time() - mt_rand(18000,2678400))), $tt);
            $tt=str_replace("[KEY]", $key, $tt);
            $tt=str_replace("[TEXT]", $text, $tt);
            @$itog.=$tt."\n";
        }
        $itog=$head."\n".$itog."\n".$bottom;
        return $itog;
    }
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    PHP:

    // возвращает массив rss 
    // $num - число rss 
    // возвращает $itog где каждый элемент - rss
    function GetNumRSS($num){ 
        global $keys, $urls, $way, $lang, $onepage; 
        global $numnrss; 
         
    for($iterator=1;$iterator<=$num;$iterator++)
    {
        $head='<?xml version="1.0" encoding="[ENC]"?'.'>'."\n\t".'<rss version="2.0">'."\n\t".'<channel>'."\n\t".'<title>[KEY]</title>'."\n\t".'<link>[SITE]</link>'."\n\t".'<description>[TEXT]</description>'."\n\t".'<lastBuildDate>[DATE]</lastBuildDate>'; 
        $shab='<item>'."\n\t".'<title>[KEY]</title>'."\n\t".'<link>[URL]</link>'."\n\t".'<description>[TEXT]</description>'."\n\t".'<pubDate>[DATE]</pubDate>'."\n\t".'<guid isPermaLink="true">[URL]</guid>'."\n\t".'</item>'; 
        $bottom='</channel></rss>'; 

        if ($onepage=="on"){$key=GetUP($keys[0][0])." RSS";} else {$key=GetUP($keys[0])." RSS";} 
         
        $se = array('&OElig','&oelig','&Scaron','&scaron','&Yuml','&circ','&tilde','&ensp','&emsp','&thinsp','&zwnj','&zwj','&lrm','&rlm','&ndash','&mdash','&lsquo','&rsquo','&sbquo','&ldquo','&rdquo','&bdquo','&dagger','&Dagger','&permil','&lsaquo','&rsaquo','?','&euro'); 
             
        $text=GetMyText('АРАКАДАБРА', mt_rand(1,2)); 
        $text=str_replace('"', "&quot;", $text); 
        $text=str_replace('<', "&lt;", $text); 
        $text=str_replace('>', "&gt;", $text); 
        $text=str_replace('&', "&amp;", $text); 
        $text=str_replace($se, '', $text); 
         
        if ($lang=="ru") {$enc="windows-1251";} else {$enc="UTF-8";} 
         
        $head=str_replace("[ENC]", $enc, $head); 
        $head=str_replace("[TEXT]", $text, $head); 
        $head=str_replace("[KEY]", $key, $head); 
        $head=str_replace("[SITE]", $way, $head); 
        $head=str_replace("[DATE]", date("r"), $head); 
         
        $le=sizeof($keys); 
        if ($le>$numnrss) $le=$numnrss; 
        for ($m=0; $m<$le; $m++){ 
            if ($onepage=="on"){$key=GetUP($keys[$m][0]);} else {$key=GetUP($keys[$m]);} 
             
            $text=GetMyText('АРАКАДАБРА', mt_rand(2,4)); 
            $text=str_replace('"', "&quot;", $text); 
            $text=str_replace('<', "&lt;", $text); 
            $text=str_replace('>', "&gt;", $text); 
            $text=str_replace('&', "&amp;", $text); 
            $text=str_replace($se,' ', $text); 
         
            $tt=str_replace("[URL]", $way."/".str_replace("&", "&amp;", $urls[$m][1]), $shab); 
            $tt=str_replace("[DATE]", date("r", (time() - mt_rand(18000,2678400))), $tt); 
            $tt=str_replace("[KEY]", $key, $tt); 
            $tt=str_replace("[TEXT]", $text, $tt); 
            @$itog.=$tt."\n"; 
        } 
        $itog[]=$head."\n".$itog."\n".$bottom; 
    }
        return $itog; 
    }
    Хз чем это тебе поможет. Функция оторвана от кода, и код который к ней обращается тоже придется править
     
  3. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    195
    Симпатии:
    80
    функция взята с Red.Button.TRANSFORMER
     
  4. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    это не важно
    ее нужно вызвать и что то с ней сделать -- это уже сам, или пиши задачу )))
     
  5. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    195
    Симпатии:
    80
    Судя по всему данная функция вызывается так
    PHP:
            if ($rss){
                
    $fp=fopen($folder."/rss.xml""w+");
                
    fputs($fpGetRSS());
                
    fclose($fp); chmod ($folder."/rss.xml"0777);
            }
            if (
    $necfg_rand_favicocopy($favico_filename,$folder.'/fav.ico');
    что нужно изменить сдесь?
     
  6. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    для начала было бы классно написать что ты хочешь получить =)))

    например можно изменить так
    PHP:
    if ($rss){ 
                
                
    $num_rss=5// число rss лент 
                
    $arr=GetNumRSS($num_rss);
                
                for(
    $it=1;$it<=$num_rss;$it++)
                {
                    
    $fp=fopen($folder."/rss".$it.".xml""w+"); 
                    
    fputs($fp$arr[$it-1]); 
                    
    fclose($fp); chmod ($folder."/rss".$it.".xml"0777); 
                }
            } 
            if (
    $necfg_rand_favicocopy($favico_filename,$folder.'/fav.ico'); 
    Но при этом все rss будут по одним кеям и с одним числом записей

    Если что-то другое - хоть приблизительно опиши ТЗ
     
  7. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    195
    Симпатии:
    80
    Нужно что бы была возможность при генерации указать сколько будет rss потоков на дорвее (rss.xml rss1.xml rss2.xml rss3.xml и т.д.) и сколько записей будет в каждой
    Пример: есть 500 кеев=500 страницам, нужно сгенерировать 5 rss потоков по 100 страниц в каждом
    Количество потоков и количество записей в них должны выбираться
     
  8. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    выложи сой мод RB - на выходным постараюсь глянуть
     
    pavlenkora нравится это.
  9. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    195
    Симпатии:
    80
    http://rapidshare.com/files/312077199/Red.Button.TRANSFORMER.rar.html
     
  10. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Как то так -- замени соответствующие файлы, файлами из архива.
    Быстро и сердито что называется.
     

    Вложения:

    • several_rss.rar
      Размер файла:
      28,1 КБ
      Просмотров:
      5
    pavlenkora нравится это.
Статус темы:
Закрыта.