AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Генератор случайного текста

Этот класс предназначен для добавления в текст случайных слов из указанного списка. Потребность может быть вызвана, например для формирования ссылок на Ваш сайт для предотвращения "склейки" ссылок поисковыми системами.
Например, строка: "Моя голова (машет|трясет|кивает|шевелит) ушами" может быть возвращаена как:
Моя голова машет ушами
Моя голова трясет ушами
Моя голова кивает ушами
Моя голова шевелит ушами

Строка для преобразования:
(Пример: Моя голова (машет|трясет|кивает|шевелит) ушами.)


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)]." ушами";

Каждый раз при обновлении страницы будет выдано случайное слово из массива:

Моя голова шевелит ушами

.

© Copyright 2008-2018 by KDG



Rambler's Top100