ФорумПрограммированиеPHP для идиотов → Помогите с шаблонизатором

Помогите с шаблонизатором

  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 24 февраля 2008 г. 3:27

    Написал шаблонизатор:
    function compileTemplate($array, $html)
    {
    $html = $html . '.html';
    if (file_exists($html) AND $array != FALSE)
    {
    $html = file_get_contents($html);
    foreach ($array as $findTag => $replaceTag)
    {
    $data[$findTag] = $replaceTag;
    }
    foreach ($data as $findTag => $replaceTag)
    {
    $find[] = $findTag;
    $replace[] = $replaceTag;
    }
    $result = preg_replace($find, $replace, $html);
    }
    else
    {
    $result == FALSE;
    }
    return($result);
    }


    Принцип работы:
    $test['#{test}#'] = 'test'; //присваиваем маркеру {test} значение
    print(compileTemplate($test, 'test'); //выводим откомпилированный шаблон test.html


    Никак немогу сделать так, чтобы некоторые маркеры были глобальными (т.е. были заменены во всех шаблонах).
    Например {_MARKER_} - это глобальный, а {marker} - это локальный (заменяется только в определенном файле).
    Помогите плизз…
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 24 февраля 2008 г. 4:25, спустя 58 минут 24 секунды

    Я не очень понял проблему, но также не очень понял смысл шаблонизатора, который ни делает ничего, кроме банальных замен.
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 24 февраля 2008 г. 4:31, спустя 5 минут 34 секунды

    прав! поэтому я сейчас написал другой (шаблонизатор это или еще что-то) =)
    function parse($array, $tpl)
    {
    extract($array);
    $tpl = file_get_contents($tpl);
    $tpl = str_replace(array('[*', '*]'), array('<?', '?>'), $tpl);
    eval('?>' . $tpl . '<?');
    }


    И сразу появился вопрос:
    так как eval is evil, можно ли както обойтись без eval?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 24 февраля 2008 г. 6:30, спустя 1 час 59 минут 45 секунд

    Сделал!
  • Patrick

    Сообщения: 506 Репутация: N Группа: Кто попало

    Spritz 25 февраля 2008 г. 3:45, спустя 21 час 14 минут 39 секунд

    И сразу появился вопрос:
    так как eval is evil, можно ли както обойтись без eval?

    не заниматься хернёй и использовать уже готовые варианты…
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 25 февраля 2008 г. 5:32, спустя 1 час 46 минут 39 секунд

    поздно ответил, как видишь я уже сделал…
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 25 февраля 2008 г. 5:37, спустя 5 минут 31 секунду

    а в чем смысл такого шаблонизатора, который заменяет
  • на <?php ?>
  • ?
    что, от этого лучше читается или быстрее работает?
все умрут, а я изумруд
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 25 февраля 2008 г. 5:40, спустя 2 минуты 47 секунд

    мне просто делать нечего…
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 25 февраля 2008 г. 5:55, спустя 14 минут 56 секунд

    ясно =)
    все умрут, а я изумруд
  • aligator

    Сообщения: 52 Репутация: N Группа: Кто попало

    Spritz 26 февраля 2008 г. 4:17, спустя 22 часа 22 минуты 11 секунд

    мне просто делать нечего…

    :)
  • mechanic

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 27 февраля 2008 г. 0:44, спустя 20 часов 26 минут 25 секунд


    мне просто делать нечего…

    именно эта мысль меня и преследовала, пока я читал данную ветку )))
  • Пожалуйста, авторизуйтесь, чтобы написать комментарий!