За последние 24 часа нас посетили 17610 программистов и 1715 роботов. Сейчас ищут 946 программистов ...

Как правильно искать теги и внутренность тегов

Тема в разделе "Прочие вопросы по PHP", создана пользователем neatek, 3 дек 2014.

  1. neatek

    neatek Активный пользователь

    С нами с:
    14 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте..
    Пытаюсь сделать простую обработку тегов в шаблоне
    Вот допустим HTML:
    Код (Text):
    1. <html>{%if_user_more_0%} asds {%endif%}asdada {%if_user_more_1%} asdasd{%endif%}</html>
    Вот я попытался обработчик написать:
    Код (Text):
    1.         $again = true;
    2.         $analys = $TEMPLATE;
    3.         do {
    4.                 $x = strpos($analys, '{%');
    5.                 $y = strpos($analys, '%}');
    6.  
    7.                 if($x === false)
    8.                 {
    9.                         $again = false; // прекращаем анализ если нету тегов
    10.                 }
    11.                 else
    12.                 {
    13.                         if($y != false)
    14.                         {
    15.                                 $condition = substr($analys, $x, $y);
    16.                                 $analys = str_replace($condition,'',$analys);
    17.                         }
    18.                 }
    19.         } while ($again == true);

    В моей версии заложена суть поиска {% и %} потом берем полностью что между ними. И все равно косяк получается вот тут : $y = strpos($analys, '%}');
    Вывод результата:

    Как видно он получает еще то, что после %}.

    Мне интересно как бы Вы написали обработку.
    С чего бы начали, и какие бы функции использовали.
    Спасибо.
     
  2. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Посмотри исходники smarty
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. <html><?php if ($user_more == 0) { ?> ажажажа <?php } else { echo "ололо";} ?>