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

Статус
В этой теме нельзя размещать новые ответы.

pavlenkora

Гуру форума
Регистрация
8 Окт 2008
Сообщения
188
Реакции
81
Есть функция генерации 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;
}
 
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; 
}

Хз чем это тебе поможет. Функция оторвана от кода, и код который к ней обращается тоже придется править
 
Хз чем это тебе поможет. Функция оторвана от кода, и код который к ней обращается тоже придется править

функция взята с Red.Button.TRANSFORMER
 
это не важно
ее нужно вызвать и что то с ней сделать -- это уже сам, или пиши задачу )))
 
Судя по всему данная функция вызывается так
PHP:
		if ($rss){
			$fp=fopen($folder."/rss.xml", "w+");
			fputs($fp, GetRSS());
			fclose($fp); chmod ($folder."/rss.xml", 0777);
		}
		if ($necfg_rand_favico) copy($favico_filename,$folder.'/fav.ico');
что нужно изменить сдесь?
 
для начала было бы классно написать что ты хочешь получить =)))

например можно изменить так
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_favico) copy($favico_filename,$folder.'/fav.ico');

Но при этом все rss будут по одним кеям и с одним числом записей

Если что-то другое - хоть приблизительно опиши ТЗ
 
Нужно что бы была возможность при генерации указать сколько будет rss потоков на дорвее (rss.xml rss1.xml rss2.xml rss3.xml и т.д.) и сколько записей будет в каждой
Пример: есть 500 кеев=500 страницам, нужно сгенерировать 5 rss потоков по 100 страниц в каждом
Количество потоков и количество записей в них должны выбираться
 
выложи сой мод RB - на выходным постараюсь глянуть
 
Как то так -- замени соответствующие файлы, файлами из архива.
Быстро и сердито что называется.
 

Вложения

  • several_rss.rar
    28,1 KB · Просмотры: 5
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху