Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965

Подстановка переменных в шаблоне

16.12.2013, 19:24. Показов 7475. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Искал ответ, но не смог найти...
В общем что бы вывести текст, мы используем конструкцию переменной такого вида (пример):
Файл с расширение .php:
PHP
1
$text = 'Тут текст';
И эта переменная выводится в шаблоне с расширением .html:
HTML5
1
2
3
<body>
{text}
</body>
А что если надо вывести конечный результат, скажем вот этого:
PHP
1
echo date('h:i:s d.m.y');
вот этого:
PHP
1
2
define('ST_T', microtime());
printf('Время генерации страницы %.5f секунд', microtime()-ST_T);
или вообще вот этого:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$now_hours = date('G');
if($now_hours<8)
{
    echo 'Доброй ночи!';
}
elseif($now_hours<12 && $now_hours>=8 ) 
{
    echo 'Доброе утро!';
}
elseif($now_hours>=12 && $now_hours<17)
{
    echo 'Добрый день!';
}
elseif($now_hours>=17 && $now_hours<=23)
{
    echo 'Добрый вечер!';
}
Как тут сделать, что бы в шаблон вставлять только переменную, например {dert}, а не весь этот код? В общем в шаблоне php кода не должно быть.
Большое спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2013, 19:24
Ответы с готовыми решениями:

Подстановка переменных в шаблон
Здравствуйте, уважаемые форумчане! Можете подсказать, как реализовать подстановку значений, полученных из формы, в шаблон? Тот код,...

Подстановка переменных в глобальные массивы
Доброго времени суток. Совсем недавно я начал изучать php и у меня возник вопрос на который ответа я пока не нашел. У меня на странице...

Подстановка переменных в формулу
Доброго времени суток. Интересует такой вопрос: возможно ли в маткаде в формулу подставлять значение переменных (примерно так...

11
 Аватар для KSiS
26 / 26 / 16
Регистрация: 03.06.2013
Сообщений: 138
16.12.2013, 19:34
PHP файл:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$now_hours = date('G');
if($now_hours<8)
{
    $dert = 'Доброй ночи!';
}
elseif($now_hours<12 && $now_hours>=8 ) 
{
    $dert = 'Доброе утро!';
}
elseif($now_hours>=12 && $now_hours<17)
{
    $dert = 'Добрый день!';
}
elseif($now_hours>=17 && $now_hours<=23)
{
    $dert = 'Добрый вечер!';
}
$content = file_get_contents('file.html');
$content = str_replace('{dert}', $dert);
print $content;
Файл file.html :
HTML5
1
2
3
4
5
6
7
8
<!DOCTYPE html>
<head>
<title>Some title</title>
</head>
<body>
Приветствие ->> {dert}
</body>
</html>
Добавлено через 2 минуты
А вообще можно так делать:
PHP
1
2
3
4
5
$tpl = array(
'{dert}' => $dert,
'{time}' => time(),
);
$content = strtr($content, $tpl);
То есть в масив записать все что нужно заменять чтобы не вызывать 100500 раз str_replace
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
16.12.2013, 19:41
А не проще тогда уж вместо метки поставить вывод переменной
HTML5
1
2
3
<body>
<?=$now_hours?>
</body>
и инклюд шаблона сделать, чем заменять кучу меток
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$now_hours = date('G');
if($now_hours<8)
{
    $dert = 'Доброй ночи!';
}
elseif($now_hours<12 && $now_hours>=8 ) 
{
    $dert = 'Доброе утро!';
}
elseif($now_hours>=12 && $now_hours<17)
{
    $dert = 'Добрый день!';
}
elseif($now_hours>=17 && $now_hours<=23)
{
    $dert = 'Добрый вечер!';
}
include "template.html";
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
16.12.2013, 19:56  [ТС]
KSiS, спасибо, очень помогли!
0
 Аватар для KSiS
26 / 26 / 16
Регистрация: 03.06.2013
Сообщений: 138
17.12.2013, 00:19
crautcher,
Цитата Сообщение от Raisin Zn Посмотреть сообщение
В общем в шаблоне php кода не должно быть.
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
17.12.2013, 05:11  [ТС]
Покажите, пожалуйста еще пример с этим кодом:
PHP
1
2
define('ST_T', microtime());
printf('Время генерации страницы %.5f секунд', microtime()-ST_T);
и этим:
PHP
1
echo date('h:i:s d.m.y');
И еще: как можно в PHP заменить все русские слова/фразы на переменные, а далее завернуть все эти фразы в отдельный Lang-файл?
Спасибо.

Добавлено через 23 минуты
Цитата Сообщение от Raisin Zn Посмотреть сообщение
Lang-файл
Языковой файл. Но он тоже с расширением PHP...
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
17.12.2013, 11:46
Цитата Сообщение от KSiS Посмотреть сообщение
crautcher, В общем в шаблоне php кода не должно быть.
Или что молния ударит в монитор?
0
 Аватар для KSiS
26 / 26 / 16
Регистрация: 03.06.2013
Сообщений: 138
17.12.2013, 11:53
PHP
1
2
3
4
5
6
7
8
9
define('ST_T', microtime());
$time_gen = sprintf('Время генерации страницы %.5f секунд', microtime()-ST_T);
$date = date('h:i:s d.m.y');
$tpl = array(
'{dert}' => $dert,
'{time_gen}' => $time_gen,
'{date}' => $date,
);
$content = strtr($content, $tpl);
Добавлено через 4 минуты
Цитата Сообщение от crautcher Посмотреть сообщение
Или что молния ударит в монитор?
дело не в молнии, просто человеку нужно без PHP кода, если есть такая возможность тогда почему не воспользоваться ней? К тому же это не костыль, а популярная конструкция.

Добавлено через 2 минуты
Цитата Сообщение от Raisin Zn Посмотреть сообщение
И еще: как можно в PHP заменить все русские слова/фразы на переменные, а далее завернуть все эти фразы в отдельный Lang-файл?
Спасибо.
Файл lang.php (или другой, в функции тоже замените):
Code
1
2
name = Имя
last_name = Фамилия
PHP
1
2
3
4
5
6
$lang = parse_ini_file('lang.php');
$tpl = array(
  '{name}' => $lang['name'],
  '{last_name}' => $lang['last_name'],
);
$content = strtr($content, $tpl);
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
17.12.2013, 12:01
Цитата Сообщение от KSiS Посмотреть сообщение
К тому же это не костыль, а популярная конструкция.
KSiS, может конструкция и популярная, но бредовая, могко говоря. Есть на форуме один человек, забыл его ник, так он на вопросы о шаблонах всегда даёт такую ссылку: http://www.phpinfo.su/articles... v_php.html
Там описано очень популярно, что такое шалоны и как с ними правильно работать. Честно говоря, именно эти две статьи о шаблонаx направили и меня на правильный путь (давно, но направили ).
1
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
17.12.2013, 14:30
Цитата Сообщение от Raisin Zn Посмотреть сообщение
В общем в шаблоне php кода не должно быть
вряд ли это соответствует реальной задаче.
Цитата Сообщение от KSiS Посмотреть сообщение
К тому же это не костыль, а популярная конструкция
это популярный костыль, уходящий корнями в далекое прошлое, когда люди искренне стали считать, что в "в шаблоне php кода не должно быть". В шаблоне не должно быть логики скрипта. От логики шаблона никуда не деться. Использование меток типа {var_name} в шаблонах оправдано только там, где шаблоны верстаются пользователями сайтов - это сугубо специфические сервисы, которых процент меньше чем 0.0001
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
28.12.2013, 19:21  [ТС]
Подскажите, как переделать для шаблона этот код:
PHP
1
2
3
            $result = mysql_query("SELECT * FROM `user`");
            while($myrow = mysql_fetch_assoc($result))
            echo $myrow['id']. $myrow['login']. $myrow['email']. '<br />';
Этот код выводит список всех id, имя пользователя, почту в одну строчку.

Добавлено через 12 минут
Вернее эти переменные:
PHP
1
$myrow['id']. $myrow['login']. $myrow['email'].
что отображались все пользователи.
Если вставляю в шаблон:
PHP
1
2
3
<?php
echo $myrow['id']. $myrow['login']. $myrow['email']. '<br />';
?>
то отображается всего один пользователь, самый первый.
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
29.01.2014, 09:57  [ТС]
Очень понравился этот способ: https://www.cyberforum.ru/post5505309.html https://www.cyberforum.ru/post5508870.html
А как сделать подключение шаблона в шаблоне таким же кодом:
HTML5
1
{include file='тут файл'}
Как то так.
Или придется все шаблоны собирать в файл.php:
HTML5
1
2
3
4
$content = file_get_contents('шапка.html');
$content = file_get_contents('меню.html');
$content = file_get_contents('боду.html');
$content = file_get_contents('подвал.html');
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2014, 09:57
Помогаю со студенческими работами здесь

Не работает подстановка переменных
Всем доброго времени суток! Не понимаю в чем ошибка, по логике все нормально, но почему-то не работает. $newController = new...

Подстановка переменных в сервлет
Привет еще раз)Подскажите,пожалуйста,такую штуку,вот есть форма: &lt;form action=&quot;qwery&quot; method=&quot;get&quot;&gt; &lt;input...

Подстановка переменных в DoCmd.RunSQL() и db.Execute()
Доброго времени, Я бы хотел использовать db.Execute вместо DoCmd.RunSQL(), так как он чуть быстрее и кода надо меньше писать, но давно...

Подстановка чисел вместо двух символьных переменных
Получено некоторое символьное выражение,содержащее две символьные переменные. Вместо этих символьных переменных необходимо подставить числа...

Подстановка, зависимые ячейки, подстановка по условию
Доброго времени суток. Предисловие! Можно не читать. Около недели назад начал разрабатывать решение для того чтобы упорядочить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru