Расширение шаблона имеет значение?

Статус
В этой теме нельзя размещать новые ответы.

Foxter

Новичок
Здравствуйте!

Возникло такое затруднение. Я создал шаблон с расширением .inc
Это обычный текстовый файл с html тегами и псевдонимами подстановки #VAR#. Обрабатываю его : получаю в переменную и заменой подставляю нужные значения. Вывожу через echo. Но когда я пытаюсь в него вставить куски php - <?php echo('!!!') ?>, то эти вставки игнорируются. Делать шаблоны .html не хотелось бы.

Вопрос в следующем - есть ли какая-то разница при выводе шаблона через echo, связанная с его расширением? Спасибо.

П.С.: Проверить гипотезу с расширением .html пока не имею возможности, но вопрос терзает просто ))) В инете ничего толкового не нашел.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Всавки и будут игнорироваться если работать с содержимым шаблона как с обычным текстовым файлом, не используя на нем include и т.д.

@WMix, он спрашивает почему у него у inc файлах тэги не пашут.
 

WMix

герр M:)ller
Партнер клуба
я понимаю но это у него стринг, там не include нужен, а про оценивание рассказывать не хочется
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@WMix, ну как бы смотря как он там получается этот стринг) если бы инклюдом - все бы работало, но встает куча других вопросов =\

Первый - что же именно автор пытается изобразить?
 

WMix

герр M:)ller
Партнер клуба
@c0dex, ob_start, include, parse_ini_string предлагаешь? ну вроде да, так безопасно.
но чую там parts и нотисы с ворнунгами засрут весь лог
поменять парсинг и инклуд, вижу иньекцию
 
Последнее редактирование:

Foxter

Новичок
Ситуация в общем виде такая. Есть файл шаблона tmpl.inc

<div class="nav">
<a href="index.htm" class="a #HGLT01#">
<i class="fa fa-home"></i> Главная
</a>
</div>
<?php echo('!!!'); ?>

Он вставляется на страницу путем вызова функции

get_repl_file('inc/tmpl/tmpl.inc', '#HGLT01#&a_hlght');
Сама функция представляет из себя следующее

// Находит указанный файл и производит в нем подстановки, затем выводит в поток
function get_repl_file($file, $arr_repl=null)
{
$file = file_get_contents($file);
$arr = explode(':',$arr_repl);
for($i=0;$i<count($arr);$i++)
{
$arr_1 = explode('&',$arr[$i]);
for($i_1=0;$i_1<count($arr_1);$i_1++)
{
$file = str_replace($arr_1[0],$arr_1[1],$file);
}
}
echo $file;
}

Вот, но php в шаблоне игнорируется. Никак не могу понять почему ((
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
правильный путь это добавить новую переменную и заменить ее на что угодно не порть!
 

Foxter

Новичок
Понимаю, Вас. Но почитал статьи про шаблоны. В одной из них приводится пример с подкраской вычисляемого значения в зависимости от него и указывается, что лучше логику поместить в шаблон. Там этот пхп почему-то работал (по утверждению автора). Поэтому так и хотел сделать.

Так а почему не срабатывает у меня - не пойму.
 
Последнее редактирование модератором:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Foxter, потому, что ты читал хреновую статью. На форуме есть тема про литературу, рекомендую начать с нее.
 

scorpion-ds

Новичок
Может просто inc не связан с PHP в настройках сервера?

Вообще незачем там делать PHP, мой первый шаблонизатор работал почти как вас, просто поиск и замена строки.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@scorpion-ds, разуйте глаза, уважаемый, при чем тут это? У него там $file = file_get_contents($file);
 

Foxter

Новичок
Может просто inc не связан с PHP в настройках сервера?

Вообще незачем там делать PHP, мой первый шаблонизатор работал почти как вас, просто поиск и замена строки.
Ну вроде как и логика в самом шаблоне - в одном месте.
 

Фанат

oncle terrible
Команда форума
Не читай никаких статей, возьми твиг и не парь мозг себе и другим.
Обсуждать тут нечего, все уже обсуждено 10 лет назад.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху