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

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

Foxter

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

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

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

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

@WMix, он спрашивает почему у него у inc файлах тэги не пашут.
 
я понимаю но это у него стринг, там не include нужен, а про оценивание рассказывать не хочется
 
@WMix, ну как бы смотря как он там получается этот стринг) если бы инклюдом - все бы работало, но встает куча других вопросов =\

Первый - что же именно автор пытается изобразить?
 
@c0dex, ob_start, include, parse_ini_string предлагаешь? ну вроде да, так безопасно.
но чую там parts и нотисы с ворнунгами засрут весь лог
поменять парсинг и инклуд, вижу иньекцию
 
Последнее редактирование:
Ситуация в общем виде такая. Есть файл шаблона 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 в шаблоне игнорируется. Никак не могу понять почему ((
 
Последнее редактирование:
правильный путь это добавить новую переменную и заменить ее на что угодно не порть!
 
Понимаю, Вас. Но почитал статьи про шаблоны. В одной из них приводится пример с подкраской вычисляемого значения в зависимости от него и указывается, что лучше логику поместить в шаблон. Там этот пхп почему-то работал (по утверждению автора). Поэтому так и хотел сделать.

Так а почему не срабатывает у меня - не пойму.
 
Последнее редактирование модератором:
@Foxter, потому, что ты читал хреновую статью. На форуме есть тема про литературу, рекомендую начать с нее.
 
Может просто inc не связан с PHP в настройках сервера?

Вообще незачем там делать PHP, мой первый шаблонизатор работал почти как вас, просто поиск и замена строки.
 
@scorpion-ds, разуйте глаза, уважаемый, при чем тут это? У него там $file = file_get_contents($file);
 
Может просто inc не связан с PHP в настройках сервера?

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

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