![]() |
[PHP4] Помогите дописать скрипт-шаблонизатор
Вообщем, пытаюсь я тут написать мини шаблонизатор.
main.php: PHP код:
template.txt: Код:
<%-var1-%><%-var2-%>Notice: Undefined variable: \1 in /home/public_html/test.php on line 10 Не знаю, как вставить туда нужную переменную. Помогите, плииз. Заранее спасибо. |
Бакс убери :)
Цитата:
|
Кто такой бакс и откуда его надо убрать??
|
бакс - это $
|
Есть вот это
Цитата:
$content = preg_replace("/<%-([A-z0-9]*?)-%>/i", "\\1", $content); |
Ну, тогда ты мена не совсем понял.
Допустим, если нашлось сочетание var1, то мне нужно заменить его на переменную $var1, которая была определена чуть выше =(( |
тогда так:
$content = preg_replace("/<%-([A-z0-9]*?)-%>/ie", "\$\\1", $content); |
Хм.. Не работает.
Вообщем, я это уже реализовал чуть иначе: PHP код:
|
вроде там по-умолчанию вот этот флаг PREG_PATTERN_ORDER, в $output[0] тогда должно быть полное совпадение(т.е. набор совпадений полностью удовлетсворяющих шаблону), а его видимо нет.
PREG_SET_ORDER - а если указать вот этот флаг, то тогда в $output[0] первое найденное совпадение(точнее набор совпадений) вообще. ну а дальше смотри по докам. p.s. могу и ошибаться:) |
А что за набор полностью удовлетворяющий совпадению?
Если он не удовлетворяет полностью, значит он не удовлетворяет вообще... Или я чего-то не понимаю... И еще - если я хочу вызвать фунцкию как замену - не получается... PHP код:
|
Вот если бы я только знал как передать функции результаты работа регеха, то все проблемы были бы решены.. =((
|
регулярное выражение — как матрешка.
|
Sheryld
Рабочий пример, пожалуйста... При чем здесь матрешка? =// |
Что, никто не может помочь?
Я тут заметил одну странную вещь: Если один параметр, то все работает, если много - то передает только последний. Т.е.: $var = preg_replace($searchpattern, funcy('\\1'), $var) работает, но $var = preg_replace($searchpattern, funcy('\\1','\\2'), $var) передает только \\2. А вместо значения \\1 оно передает строку "\1"... Что я делаю не так? Даже если я пишу $var = preg_replace($searchpattern, funcy('\\2','\\2'), $var) эффект тот же...... -------------------- Ага, кажется я окончательно понял: регех передает строку "\1", я обрабатывает ее при получении. Но \1 является числом, и мне нужно чтобы функция-получатель обработала ее, а не строку \1... =(((( |
В общем, я уже разобрался сам.
Всем спасибо за отсутствие помощи... |
и что тебе не понятно? уже и так разжевали все :p
|
| Часовой пояс GMT +4, время: 09:44. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.