Рандомизация текста по шаблону на PHP

Понадобилась функция для рандомизации текста вида:

{Привет|Здравствуй} как {дела|жизнь|настроение|погодка}?

Начал искать велосипед, но не один из них меня не устроил и я решил написать свой.

В сети находил только класс, который использует еще один класс и он был довольно громоздкий, а мне хотелось что-то по проще и я написал такую функцию:

Вот и все, ничего лишнего.
Пример использования:

Выведет на экран 100 строк по указанному шаблону. Результат выполнения:

Съешь же этих жестких французских кактусов да выпей чаю
Съешь уже этих аццких японских креведок, и выпей сакэ!!
Съешь же этих жестких китайских кактусов, да выпей водки
Съешь ещё этих жестких китайских суши и выпей сакэ
Съешь же этих жестких русских булок да выпей йаду
Съешь уже этих жестких мексиканских креведок, и выпей чаю!!!
Съешь уже этих жестких французских кактусов да выпей йаду!
Съешь уже этих мягких мексиканских булок да выпей водки!
Съешь уже этих аццких китайских креведок, и выпей сакэ
Съешь уже этих аццких французских булок и выпей текилы!!!
Съешь ещё этих жестких русских булок да выпей текилы!!!
Съешь же этих аццких французских суши, да выпей текилы!!
Съешь ещё этих мягких мексиканских креведок, да выпей чаю!!!
Съешь уже этих аццких русских креведок, да выпей водки
Съешь же этих жестких китайских кактусов, и выпей водки!!!
Съешь ещё этих мягких олбанских суши и выпей текилы!!
Съешь ещё этих аццких мексиканских креведок, и выпей йаду!!
Съешь ещё этих аццких мексиканских креведок и выпей йаду!
Съешь же этих мягких китайских кактусов и выпей йаду!!
Съешь уже этих аццких мексиканских булок, и выпей сакэ!!!
Съешь уже этих жестких олбанских кактусов, да выпей йаду
Съешь же этих жестких китайских креведок, да выпей текилы!!
Съешь же этих мягких французских суши да выпей сакэ
Съешь ещё этих жестких китайских кактусов, и выпей чаю!!
Съешь уже этих жестких мексиканских суши и выпей текилы!
Съешь ещё этих аццких французских кактусов, и выпей сакэ!!
Съешь уже этих жестких русских кактусов, и выпей водки!
Съешь же этих жестких мексиканских креведок, да выпей йаду
Съешь же этих мягких японских кактусов, и выпей водки
Съешь ещё этих мягких русских кактусов, да выпей сакэ!!
Съешь же этих мягких мексиканских суши, да выпей текилы!!
Съешь уже этих мягких китайских креведок и выпей сакэ
Съешь уже этих жестких китайских креведок, и выпей чаю!
Съешь же этих аццких русских булок да выпей текилы!!!
Съешь же этих мягких олбанских суши, и выпей водки
Съешь же этих мягких олбанских булок и выпей водки
Съешь же этих мягких японских креведок, и выпей водки
Съешь уже этих аццких французских булок да выпей йаду!!!
Съешь же этих жестких китайских суши, и выпей йаду!
Съешь же этих мягких китайских креведок, да выпей водки!
Съешь уже этих аццких олбанских кактусов, да выпей чаю!
Съешь ещё этих аццких японских креведок да выпей чаю!
Съешь уже этих мягких русских креведок да выпей сакэ!
Съешь уже этих аццких русских булок, да выпей йаду
Съешь уже этих аццких мексиканских суши, да выпей чаю!!
Съешь уже этих мягких олбанских креведок, да выпей сакэ!!
Съешь уже этих мягких китайских суши и выпей текилы
Съешь уже этих жестких китайских булок, и выпей йаду!!!
Съешь уже этих жестких японских кактусов и выпей водки!!!
Съешь же этих аццких китайских креведок и выпей текилы!!
Съешь ещё этих жестких олбанских суши и выпей сакэ
Съешь уже этих жестких русских кактусов да выпей чаю!!
Съешь же этих жестких олбанских булок да выпей йаду!!
Съешь ещё этих мягких японских креведок, да выпей сакэ!!!
Съешь уже этих жестких мексиканских булок, и выпей текилы!!
Съешь же этих жестких мексиканских суши, да выпей сакэ
Съешь же этих мягких французских суши, да выпей сакэ
Съешь же этих жестких олбанских кактусов да выпей йаду!
Съешь ещё этих жестких мексиканских креведок и выпей йаду
Съешь уже этих мягких мексиканских креведок и выпей чаю!!
Съешь же этих жестких мексиканских булок, и выпей чаю!!
Съешь же этих мягких мексиканских креведок да выпей водки!!
Съешь же этих мягких русских булок, да выпей йаду!
Съешь же этих мягких олбанских булок, и выпей водки!!!
Съешь ещё этих аццких французских кактусов, и выпей текилы!!
Съешь же этих жестких русских суши да выпей йаду!!!
Съешь уже этих аццких французских креведок да выпей чаю!!
Съешь же этих мягких японских булок, да выпей чаю!!!
Съешь же этих аццких китайских креведок, да выпей текилы!
Съешь ещё этих мягких французских кактусов и выпей текилы
Съешь ещё этих мягких русских креведок и выпей водки
Съешь же этих мягких китайских креведок, и выпей водки!!!
Съешь уже этих мягких олбанских суши, да выпей текилы!!
Съешь же этих аццких олбанских кактусов, да выпей чаю!!!
Съешь уже этих жестких японских кактусов и выпей йаду!
Съешь ещё этих мягких французских суши, да выпей водки
Съешь же этих жестких мексиканских кактусов, и выпей йаду
Съешь уже этих мягких японских кактусов, и выпей йаду!!
Съешь уже этих мягких французских суши, и выпей сакэ!!
Съешь уже этих аццких японских креведок да выпей текилы
Съешь же этих аццких русских кактусов да выпей йаду
Съешь ещё этих мягких русских креведок, да выпей текилы!
Съешь же этих мягких мексиканских суши, и выпей водки!
Съешь уже этих жестких японских кактусов да выпей сакэ
Съешь уже этих мягких французских булок, да выпей сакэ
Съешь уже этих жестких мексиканских булок да выпей сакэ!
Съешь уже этих жестких мексиканских креведок, да выпей чаю!!
Съешь уже этих аццких китайских креведок и выпей йаду!
Съешь же этих аццких мексиканских креведок, и выпей чаю!
Съешь ещё этих мягких японских суши, и выпей текилы!!
Съешь ещё этих мягких французских креведок да выпей чаю!
Съешь же этих мягких олбанских кактусов да выпей водки
Съешь же этих аццких китайских кактусов да выпей чаю!!!
Съешь ещё этих мягких японских суши, да выпей водки!
Съешь уже этих мягких китайских креведок, и выпей йаду!
Съешь же этих аццких японских кактусов да выпей сакэ!!!
Съешь ещё этих жестких олбанских булок да выпей чаю!!
Съешь же этих аццких мексиканских суши и выпей сакэ
Съешь же этих жестких олбанских суши да выпей водки!!
Съешь ещё этих мягких мексиканских креведок, да выпей текилы!!!

Надеюсь кому-то пригодится.

9 комментариев: Рандомизация текста по шаблону на PHP

  • Набор букв говорит:

    Хорошая тема, но вот как это всё установить,не знаю. Попробовал этот код вписать в пустой php и не чего не вышло? Как всё это сделать? Напишите поподробней. 

    • Geograph говорит:

      да, именно вписываете оба кода в php файл и запускаете, все должно работать

  • Набор букв говорит:

    Попробую, спасибо. Но лучше бы сразу файл с кодом закинули в архив, чтоб скачать смогли и закинуть через ftp. Для таких как я – чайников :)

  • Набор букв говорит:

    И ещё вопрос – а почему у меня все строки слитно, а не как у вас на сайте все с новой строки? У меня ошибка или так и должно быть? Так вообще не удобно. А нельзя у вас на сайте такой сервис сделать? Я бы пользовался, да думаю и не только я один

    • Geograph говорит:

      Если через браузер открываете то замените строку:

      echo random_text($pattern) . PHP_EOL;

      на эту

      echo random_text($pattern) . "<br>";

  • Константин говорит:

    Огромное вам спасибо за этот скрипт!
    Очень ценю такие решения – простые (на первый взляд) и изящные.

  • Валерон говорит:

    А на C# у вас нет такого рандомизатора?

    • Geograph говорит:

      Есть:

      public static string RandomizeText(string textPattern)
      {
      var rexp = new Regex(@"{(.*?)}", RegexOptions.Singleline | RegexOptions.Compiled);
      return rexp.Replace(textPattern, Evaluator);
      }

      private static string Evaluator(Match match)
      {
      if (!match.Value.Contains("|")) return match.Value.TrimStart('{').TrimEnd('}');
      string[] variants = match.Value.TrimStart('{').TrimEnd('}').Split('|');
      return variants[new Random(Guid.NewGuid().GetHashCode()).Next(variants.Length)];
      }

  • Наталья говорит:

    Здравствуйте.
    Размножила текст на вашем рандомизаторе. Теперь у меня мног вариантов текста. Спасибо.
    Скажите а вот этот шаблон php нужен чтобы при отправке писем тексты менялись. Его закидывать в корневую папку? Непонятно что делать с этим шаблоном

Добавить комментарий для Наталья Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Не пропусти новые записи. Подпишись в соц. сетях:

E-mail рассылка блога:

Календарь

Июнь 2018
Пн Вт Ср Чт Пт Сб Вс
« Авг    
 123
45678910
11121314151617
18192021222324
252627282930  

Нас находят по запросам