Подскажите, есть ли способ для подстановки значений переменных в загружаемый html ? Допустим, имеет template.html :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>УХХХХ</title>
<link rel="stylesheet" href="../../template/css/style.css">
</head>
<body>
<?=$html?>
</body>
<script src="../../template/js/print.js"></script>-->
</html>
и необходимо вставить в место $html какой-либо кусок,переданный как аргумент функции, например :
function somefunction($html)
{
echo file_get_contents('template.html');
}
Есть возможность как это реализовать встроенными функциями или всё таки надо писать свой парсер или использовать шаблонизатор?
Примерно так устроена шаблонизация во всех шаблонизаторах на пыхе. Просто выполните код нативно. Ведь пыха сама по себе и есть шаблонизатор. Родилась такой и такой остаётся по сей день.
$tmpl = '
<html><?= $foo ?></html>
';
function render($tmpl, array $params = []): string
{
ob_start();
extract($params);
eval('?>' . $tmpl . '<?php');
return ob_get_clean();
}
echo render($tmpl, ['foo' => 'bar']);
Результат:
<html>bar</html>
Если будете хранить шаблоны в php
файлах, то eval
можно будет заменить на require
. Что по сути одно и тоже.
function somefunction($html)
{
$htmlForAdd = '<p>Example</p>'
$html = str_replace('<?=$html?>', $htmlForAdd, $html )
echo file_get_contents('template.html');
}
Мне кажется, что вам подойдет банальный include
(http://php.net/manual/ru/function.include.php)
function somefunction($html)
{
include('template.html');
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
ребят в общем такая проблема не могу понять как сделать выборку из базы данных чтобы она проходила по определенным параметрам но эти параметры...
Немного опишу ситуациюЯ создал на yii2 REST API и хотел через curl посмотреть что получилось
Разбираюсь с тестированием(Yii2 basic), пока что unit тестыПодключил фикстуру для класса User, пользователи во время работы теста в базу(тестовую)...