Как подставить значения из формы в шаблон?

Здравствуйте! Можете подсказать, как реализовать подстановку значений, полученных из формы, в шаблон?
Тот код, который есть сейчас:
<?php
//создание виртуального хоста Apache
if (isset ($_POST['create'])) {
    //получаем необходимые данные из полей формы
    $cname = $_POST['cname'];
    $calias = $_POST['calias'];
    $cemail = $_POST['cemail'];
    $ccharset = $_POST['ccharset'];
    $cindexfiles = $_POST['cindexfiles'];
    
    //получаем шаблон из файла
    $config = file_get_contents ('/***/templates/apachevhost.tpl') or die ('Невозможно получить доступ к файлу');
    //путь к новому шаблону
    $path = "/etc/apache2/sites-available/$cname.conf";
    $pathtosave = "/***/panel/$cname.conf";
    //записываем наш новый виртуальный хост в файл
   echo $config;
   echo "<br> Имя сайта: $cname";
    echo "<br> Алиасы сайта: $calias";
     echo "<br> Email администратора сайта: $cemail";
    //затем активируем виртуальный хост и перезагружаем веб-сервер
...
}
?>

Шаблон (apachevhost.tpl):
<VirtualHost 127.0.0.1:80>
    ServerName $cname
    ServerAlias $calias
    DocumentRoot /home/$login/www/$cname
    DirectoryIndex $cindexfiles
    ServerAdmin $cemail
    AddDefaultCharset $ccharset
    AssignUserID $login $login
    CustomLog /home/$login/logs/$cname.access.log combined
    ErrorLog/home/$login/logs/$cname.error.log
     <Directory /home/$login/www/$cname>
    Require all granted
    </Directory>
    </VirtualHost>

Что не устраивает в текущем коде:
значения не подставляются, форма работает, при любых значениях переменных шаблон остаётся таким же (а переменные печатаются "как есть" - т.е. в выводе $config вижу
ServerName $cname
ServerAlias $calias

и.т.д.
Создаётся ощущение, что результат работы функции file_get_contents "заключён в одинарные кавычки" для PHP (если так можно выразиться)
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
eval()
Но это ОЧЕНЬ плохой вариант!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы