Функция генератора текстов на PHP

Скрипты Прокомментировать

Иногда возникает задача сгенерировать некоторое количество разных статей, ссылок или тестов на основе одного шаблона. Это нужно оптимизаторам, веб-мастерам или даже дорвейщикам.
В этой статье я расскажу, как решить такую задачу на php.
Как правило, шаблоны для этой цели выглядят таким образом:

1
Это {скрипт|php функция} генерации текстов {на сайт|для {анкоров|сапы|sape}}

Фигурные скобки {} – ограничивают в себе варианты фрагментов для перебора, а | служит для разделения этих самых фрагментов.
Для того, чтобы получить из этого шаблона все возможные фразы я использую такую функцию:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function textGenerator($text)
   {
   static $result;
   if (preg_match("/^(.*)\{([^\{\}]+)\}(.*)$/isU", $text, $matches))
      {
      $p = explode('|', $matches[2]);
      foreach ($p as $comb)
         textGenerator($matches[1].$comb.$matches[3]);
      }
   else
      {
      $result[] = $text;
      return 0;
      }
   return array_values(array_unique($result));
   }
$string = "Это {скрипт|php функция} генерации текстов {на сайт|для {анкоров|сапы|sape}}";
$varianty = textGenerator($string);
print_r($varianty);

В итоге получается вот что:

1
2
3
4
5
6
7
8
9
10
11
Array
(
    [0] => Это скрипт генерации текстов на сайт
    [1] => Это скрипт генерации текстов для анкоров
    [2] => Это скрипт генерации текстов для сапы
    [3] => Это скрипт генерации текстов для sape
    [4] => Это php функция генерации текстов на сайт
    [5] => Это php функция генерации текстов для анкоров
    [6] => Это php функция генерации текстов для сапы
    [7] => Это php функция генерации текстов для sape
)

Комментарии (4) к “Функция генератора текстов на PHP”

  1. Артур:

    Прикольно)) А зачем такие сложности? Можно же просто скачать бесплатную программу или даже онлайн? Или это так, для общего развития))

  2. zweroboy:

    Я такое использую в основном в своих скриптах… Например, для сабмиттера текстов в каталоги или генератора уникальных сообщений и т.д. Кому-то конечно удобнее получать результаты из программы или онлайн.

  3. Andrey37rabota:

    работа каждому
    Пишите мне на почту, всем отвечу andrey37rk@mail.ru

  4. vasya:

    Спасибо за вашу статью! Долго пытался сформулировать запрос в гугле для поиска, вбил что-то типа «php шаблоны фразы разделенные символом», а оказывается это называется генератор анкоров :) Код работает

Прокомментировать

Сообщения в RSS Комментарии в RSS Войти