День добрый, требуется оптимизировать функцию шаблонитизатора (формат и идею самих шаблонов менять нельзя). Идея следующая – есть 2х мерный массив данные, из которого нужно вывести по шаблону. Все было бы просто, но каждый элемент в строке может иметь свою обработку параметры которой задаются так же в шаблоне (но при этому остальные данные из аналогичного элемента из другой строки выводится так же). В шаблоне каждый элементы строки обозначается тегом. Тег может быть одинарный, или парный (в последнем случае требуется манипулировать данными внутри). Так же может иметь параметры. Кроме того, в шаблоне могут быть теги которые будут обработаны другими скриптами. Мы обрабатываем только заявленные нами теги. Пример шаблона: PHP: {tag_1} {tag_2:relax} {tag_3} {tag_4} {tag_4 par="x"} {tag_5 par="x" par2="2"} {tag_1:agree} {tag_3 hello="world"} subdata {other}{/tag_3} tag_1, tag_2, tag_3, tag_4, tag_5 (и т.д.)- теги, их название известны заранее ( мы передаем ее в функцию в виде массива Array("tag_1", "tag_2", "tag_3" ...)) par="x" par2="2" – parameters (возможны разные, количество в одном блоке не ограниченно) {other} – tag который нам трогать не надо :relax – subtag (возможны разные, заранее названия не известны) subdata – данные между парными тегами (закрывающий тег со слешем) В приложении func.txt работающая функция выполняющая нужные манипуляции, но как по мне, она не оптимальная. По ее алгоритму мы обрабатываем шаблон, ищим тег, разбиваем его на составляющие, вытаскиваем параметры и так тег за тегом. Повторяем для всех строк в нашем массиве. Бюджет: $60 (обсуждается). p.s. если что-то не понятно или информации недостаточно - спрашивайте, я отвечу.