imho.ws |
|
28.03.2005, 05:05 | # 1 |
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
|
[PHP4] Помогите дописать скрипт-шаблонизатор
Вообщем, пытаюсь я тут написать мини шаблонизатор.
main.php: PHP код:
template.txt: Код:
<%-var1-%><%-var2-%> Notice: Undefined variable: \1 in /home/public_html/test.php on line 10 Не знаю, как вставить туда нужную переменную. Помогите, плииз. Заранее спасибо. Последний раз редактировалось Neo; 28.03.2005 в 05:07. |
28.03.2005, 10:31 | # 5 | |
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
|
Есть вот это
Цитата:
$content = preg_replace("/<%-([A-z0-9]*?)-%>/i", "\\1", $content);
__________________
Nunc est bibendum |
|
28.03.2005, 20:07 | # 8 |
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
|
Хм.. Не работает.
Вообщем, я это уже реализовал чуть иначе: PHP код:
|
28.03.2005, 21:37 | # 9 |
Full Member
Регистрация: 29.05.2002
Сообщения: 544
|
вроде там по-умолчанию вот этот флаг PREG_PATTERN_ORDER, в $output[0] тогда должно быть полное совпадение(т.е. набор совпадений полностью удовлетсворяющих шаблону), а его видимо нет.
PREG_SET_ORDER - а если указать вот этот флаг, то тогда в $output[0] первое найденное совпадение(точнее набор совпадений) вообще. ну а дальше смотри по докам. p.s. могу и ошибаться
__________________
убрано по просьбе администратора |
28.03.2005, 22:21 | # 10 |
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
|
А что за набор полностью удовлетворяющий совпадению?
Если он не удовлетворяет полностью, значит он не удовлетворяет вообще... Или я чего-то не понимаю... И еще - если я хочу вызвать фунцкию как замену - не получается... PHP код:
Последний раз редактировалось Neo; 28.03.2005 в 22:31. |
30.03.2005, 04:13 | # 14 |
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
|
Что, никто не может помочь?
Я тут заметил одну странную вещь: Если один параметр, то все работает, если много - то передает только последний. Т.е.: $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... =(((( Последний раз редактировалось Neo; 30.03.2005 в 05:14. |