Помогите написать простую функцию к РБ

Тема в разделе "Генераторы дорвеев", создана пользователем Lexx59, 28 ноя 2009.

Статус темы:
Закрыта.
  1. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    Для проверки одной гипотезы нужна функция к РБ.
    Суть - взять из файла случайную строчку и вставить вместо макроса.
    Аналог работы [RANDKEYWORD], только кейворды должны браться из другого файла.

    Например, макрос назовем [RANDKEYWORD2], а файл, из которого брать строчку - keywords2.txt

    Понимаю, что функция элементарная, но, к сожалению в php я пока nulled :(
     
  2. alseman

    alseman

    Регистр.:
    21 май 2008
    Сообщения:
    190
    Симпатии:
    25
    Найди функцию в РБ и просто скопируй и замени по аналогии
     
  3. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    До этого я и сам додумался. Только простым копированием функции не обойтись.

    Замена макроса делается тут
    Код:
    	
    for ($i=0; $i<100; $i++){
    	if (!strstr($myshab, "[RANDKEYWORD]")) break 1;
    	$myshab=preg_replace("/\[RANDKEYWORD\]/", GetRandKeyword(), $myshab, 1);
    	}
    
    Функция, достающая кейворд
    Код:
    function GetRandKeyword(){
    	global $keys, $onepage;
    	if ($onepage=="on") {
    		$s=rand(0, (sizeof($keys)-1));
    		$s2=rand(0, (sizeof($keys[$s])-1));
    		$keyword=$keys[$s][$s2];
    	}
    
    	else {$s=rand(0, (sizeof($keys)-1)); $keyword=$keys[$s];}
    	return $keyword;
    }
    
    А наполнение массива кейвордов, как я понимаю, тут:
    Код:
    	// ПОЛУЧАЕМ КЕИ
    	$keys=array();
    	if ($nn_keys=="keypole"){
    		$keys=explode("\n", $nn_keypole);
    		for ($i=0, $lk=sizeof($keys); $i<$lk; $i++){
    			$keys[$i]=trim($keys[$i]);
    		}
    	}
    
    	if ($nn_keys=="keyfile"){
    		$keys=OpenFile('nn_keyfile');
    	}
    	
    	if ($nn_keys=="keyspisok"){
    		$keys=file("data/keys/".$keyspisok.".txt");
    	
    	}
    
    	$keys=str_replace("'", "", $keys);
    	$keys=str_replace('"', "", $keys);
    	$keys=str_replace("\r\n", "", $keys);
    	$keys=str_replace("\n", "", $keys);
    
    	// ДЕЛАЕМ РУССКИМ КЕЯМИ ВИНДОВУЮ КОДИРОВКУ
    	if ($lang=="ru"){
    		$tkeys=implode("\n", $keys);
    		$tkeys=decode_me($tkeys);
    		$keys=explode("\n", $tkeys);
    		unset($tkeys);
    	}
    
    Делаю по аналогии, но че-то не меняет :(
     
  4. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    Недооценил свои силы. Тему можно закрывать.
     
Статус темы:
Закрыта.