Генератор случайного текста
Этот класс предназначен для добавления в текст случайных слов из указанного списка. Потребность может быть вызвана, например, для формирования ссылок на Ваш сайт для предотвращения "склейки" ссылок поисковыми системами.
Например, строка: "Моя голова (машет|трясет|кивает|шевелит) ушами" может быть возвращена как:Моя голова машет ушами
Моя голова трясет ушами
Моя голова кивает ушами
Моя голова шевелит ушами
(Пример: Моя голова (машет|трясет|кивает|шевелит) ушами)
class alternate
{
var $s;
var $pattern;
function ms()
{//seeding
list($usec, $sec) = explode(' ', microtime());
return (float)$sec + ((float)$usec * 100000);
}
function bracket($str)
{ //returns bracket code
if (!strcmp($str, "(")){
return 1;
} elseif (!strcmp($str, ")")) {
return -1;
} else {
return 0;
}
}
function __construct($s = "")
{
$this->ms();
$this->s = $s;
$this->pattern = "/\(([^\(]*?)\)/m";
while (preg_match($this->pattern, $this->s) != 0) $this->s = preg_replace_callback($this->pattern, function ($matches) {
$store = explode("|", $matches[1]);
$rand_key = $store[array_rand($store, 1)];
return $rand_key;
}, $this->s);
}
}
$str=htmlspecialchars($_GET['str']);
if (!empty($str)) {$alter=new alternate ($str);
print "<br>\nИсходная строка: <b>".$str."</b><br>\nРезультат: <b>".($alter->s)."</b><br>\n";}
<p>
<form name="form" method="get">
Строка для преобразования:
<input name="str" type="text" style="width:300px;">
</form>
</p>
Вы можете скачать скрипт в виде архива генератора случайного текста.
Упрощенный вариант, когда исходный набор слов для генератора определен в виде массива:
$ar=array('машет','трясет','кивает','шевелит');
echo "Моя голова ".$ar[array_rand($ar,1)]." ушами";
Каждый раз при обновлении страницы будет выдано случайное слово из массива:
Моя голова машет ушами
.
Прокомментировать/Отблагодарить