[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблонизатор: Условия
blaker
Приветствую всех.
Пишу шаблонизатор, написал уже почти всё но не могу реализовать главного — условия, а именно вложения условий… такой ступор полнейший. Решил использовать регулярные выражения. Получилось вот что…
PHP
<?php
$test 
0;
$test2 1;
$str '<?if($test)?><?if($test2)?>2<?else?>3<?endif?><?else?>1<?endif?>';
preg_match_all("/<\?\if\(.*\)\?>.*(<\?else\?>.*)?<\?endif\?>/m",$str,$arr);
print_r($arr); //находит <?if(1==2)?><?if(1==2)?>1<?else?>2<?endif?><?else?>2<?endif?>, т.е. полностью&nb

Выходит что действие было абсолютно бесполезным, т.е. на выходе я получил то, что и имел изначально… Натолкните, пожалуйста, на мысль, как обрабатывать внутренний блок условий (<?if($test2)?>2<?else?>3<?endif?>) отдельно от внешнего…

PS: Шаблонизатор использую для того, чтоб запретить использовать php в шаблонах.



Спустя 12 минут, 57 секунд (26.04.2009 - 18:38) Sylex написал(а):
blaker
ой мутишь ты парень... очень мутишь..

Спустя 11 минут, 20 секунд (26.04.2009 - 18:49) blaker написал(а):
Sylex
а есть что-нить по существу? Про муть я и сам понял))

Спустя 1 час, 18 минут, 19 секунд (26.04.2009 - 20:08) Sylex написал(а):
blaker
неа... так как задача не ясна... почитал твою муть, и вижу, что рез-т не тот, что ты написал там... о чем говорить можно? Перечитай свой пост и попробуй сформулировать лучше четче задачу

Спустя 22 минуты, 11 секунд (26.04.2009 - 20:30) blaker написал(а):
Sylex
есть строка <?if($test)?><?if($test2)?>2<?else?>3<?endif?><?else?>1<?endif?>, мне надо сначала обработать то, что выделено красным, а потом всё остальное…

Спустя 8 минут, 7 секунд (26.04.2009 - 20:38) blaker написал(а):
Sylex если в результате ошибка, то это из-за комментария.

Спустя 22 минуты, 27 секунд (26.04.2009 - 21:00) jetistyum написал(а):
Сначала обработать то что выделено красным, а потом остальное. тебе не кажется эта логика странной???
помоему должно обрабатывается сначала первое IF .. а потом уже вложенное -второе...

Спустя 4 минуты, 47 секунд (26.04.2009 - 21:05) blaker написал(а):
jetistyum
ну дело в том, что первое должно выводить результат второго…

Спустя 8 минут, 56 секунд (26.04.2009 - 21:14) jetistyum написал(а):
не понимаю я твоей логики....
if($a){ if($b){....} else {}}else{}
вложенное условие даже не начнет проверяться или выполняться.. если не выполнено наружнее... не так ли должно быть..

Спустя 21 минута, 2 секунды (26.04.2009 - 21:35) blaker написал(а):
jetistyum
Вот блин… точно… я что-то туплю… ну тогда встаёт вопрос как отделить внешнее условие, чтоб оно не захавало внутреннее или соседнее, если оно есть…

Спустя 1 год, 11 месяцев, 13 дней, 1 час, 49 минут, 33 секунды (9.04.2011 - 23:25) uWeb написал(а):
У меня есть готовый шаблонизатор как на юкозе, с парсером кодов ($CODE$).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.