Парсер тегов НУЖЕН ХЕЛП

Тема в разделе "PHP", создана пользователем Дэн, 30 мар 2011.

Модераторы: latteo
  1. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Привет всем, я тут изучаю пхп и у меня тут возникла проблемка, как можно организовать парсер к примеру в одном шаблоне для зарегистрированных и для незарегистрированных с помощью тегов к примеру

    [registed]Инфа для залогиненных[/registed]
    [not-registed]Инфа для не залогиненных[/not-registed]

    и выводилось из одного файла!
    У меня вышло сделать только вывод из 2х шаблонов, то есть login.tpl и logged.tpl

    примеерно такким образом
    PHP:
    if ($_SESSION['login'])
    {
        
    выводим logged.tpl;
    }
    else
    {
        
    выводим login.tpl;
    }
    Хотелось бы подробной информацции как это организовать в через один файл! За ранее спасибо
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    да как-то так ...
    перенесите проверку на то пользователь это или нет внутрь tpl файла

    хотя еще под вопросом какой вариант лучше ... ваш или этот
    PHP:

    код
    $isGuns 
    =  isset($_SESSION['login']);
     
    выводим tpl.tpl;  

    внутри tpl.tpl
    PHP:
    if (!$isGuns)
    {
        
    выводим 1 
    }
    else
    {
        
    выводим 2

     
  3. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Спасибо но это не то, мне нужен вывод из одного файла(Проверка нужна не внутреннея, так не пойдет, это мне для цмски моей нужно!), я же написал как! Нужно пример класса парсера который будет выводить при условии! Например

    if ([reg][/reg])// То есть вывод между тегов если они существуют

    это отлично от бб кодов, в бб кодах тупо меняет на <b>!

    А мне нужно выводить инфу между тегами только если они существуют, с помощью каких функций это можно осуществить, просто подскажите а с классами я уже сам разберусь! Спасибо заранее
     
  4. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    PHP:
    if (!$logged
      
    $tpl preg_replace('#\[logged\].*?\[/logged\]#ims','',$tpl);
    Заменяем все, что между [logged] и [/logged] на пустую строку.
     
    Дэн нравится это.
  5. xakkap

    xakkap Писатель

    Регистр.:
    19 мар 2010
    Сообщения:
    9
    Симпатии:
    2
    А не лучше использовать Smarty для таких целей ?
    В дальнейшем могут возникнуть более сложные вопросы как внедрить аналог php кода в шаблон. В Smarty всё это уже реализовано.
     
  6. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Ну так а зачем тогда учится? я хочу научться хорошо программировать а не на продажу что - то делать, пока до продаж далеко) Я уже нашел решение этой проблемы, реализовал через классы и регулярные выражения, всем спасибо за участие! ;)