Скрипт - генератор текста на основе шаблонов

thoth777

Гуру форума
Регистрация
28 Ноя 2008
Сообщения
302
Реакции
98
Друзья, решил поделиться написанным мною скриптецом для генерации текста на основе шаблонов. Скрипт простой, но в умелых руках - мощный. Выполнен в виде php-класса
Для работы требуется модуль PHP multibyte-string (чтобы корректно обрабатывать UTF-8)

Архитектура скрипта - масштабируемая, можно добавлять новые директивы, путем создания функций вида

private function tempfunc_ИМЯ
и вызова из шаблона
{@ИМЯ аргументы}
аргументы передаются в функцию в виде одной строки, далее функция может их парсить как удобно, согласно формату аргументов.

Может сохранять результ в файл или отдавать как результат выполнения функции process()

Использование:
$test=new Govnomet("first","test",'xxx'); //папка шаблона, исходящая папка, имя файла
или
$test=new Govnomet("first"); //в этом случае сгенеренный текст отдается как результат выполнения функции process()

$test->set_encoding('UTF-8'); //установка кодировки
$test->set_outencoding('UTF-8'); //установка исходящей кодировки
$test->process(); //генерация

папка шаблона - ./templates/папка
главный шаблон - всегда main.tpl


Какие директивы понимает:


{один|два|три|четыре} - отдает одно из значений
{разделитель^один^два^три^четыре} - перемешивает значения и отдает все, разделенные разделителем
{@rand min,max} - случайное значение в диапазоне
{@randline имя файла} - случайная строка из файла

{@include имя файла} - включает текст файла в шаблон (так же обрабатывается)
{@encoding кодировка} - определяет входящую кодировку документа
{@setvar имя,значение} - устанавливает значение переменной
{@getvar имя} - подставляет значение переменной
{@u шаблон} - первый символ - заглавный

допускается любой уровень вложенности

к примеру
{@include text{@rand 1,10}.txt}
{@u {@randline text{@rand 1,10}.txt}}
{@setvar xxx,{@randline xxxxx.txt}}



качаем:


спасибо за "спасибо" )))
 
Назад
Сверху