Если совсем кратко то:
шаблон - заготовка (каркас) страницы.
Шаблонизатор - скрипт выполняющий необходимый код и импортирующий полученные данные в шаблон
$stamp = file_get_contents('page.tpl'); // берем шаблон допустим такого содержания:
<div class="{div}">{text}<div>
$content = array('{div}'=>'title','{text}'=>'Hello World!'); // собираем данные (можно любым методом)
print strtr($content,$stamp); // печатаем и имеем на выходе:
<div class="title">Hello World!<div>
таким макаром хтмл разметка и пхп код полностью не зависимы друг от друга что вобщем очень удобно например для реализации вап/веб в натуральном виде (не как в моторе, пара таблиц в ногах и шапке а центр всегда один и тот же.
В принципе решений очень много, от самых простых (и быстрых) нативных шаблонизаторов (шаблоны содержат переменные) до всяких монстров типа смарти.
Ну вот как то так примерно