Как сделать шаблоны в php?
Если не подходят что то из готовых шаблонизаторов типа Smarty
Можете сделать свой на основе PHP функций работы с буфером вывода: 
ob_start
ob_get_clean
/**
 * Функция загрузки шаблона
 * 
 * @param string $template Путь до файлов шаблона
 * @param mixed[] $data Данные для подстановки в шаблон
 * @return string Возвращает готовый код шаблона
 */
 function render_template($template, $data) {
     ob_start();
     if (file_exists($template)) {
         extract($data);
         require($template);
     } else {
         print('Нет файла шаблона: '.$template);
     }
     $html = ob_get_clean();
     return $html;
 }

Пример использования: 
$content = render_template('templates/main.php', ['title' => 'Главная страница');

echo $content;

Код main.php
<html>
 <head>
    <title><?=$title?></title>
 </head>
</html>
Вам нужен шаблонизатор. Вариантов масса:
Я предпочитаю Smarty почему-то.
Ещё, очень популярен Blade в силу того, что он используется в Laravel.
Mustache доступен не только для PHP, а ещё для массы других языков. Я его в JS использовал.
+ Twig

Это первые, что приходят в голову. Если погуглите - найдёте ещё миллион.