не надо записывать, просто формируете его в оперативной памяти.
считать шаблон в строку .
сделать замены.
отдать заголовки нужного типа контента.
вывести сформированную строку.
Для текстового файла такие
header('Content-disposition: attachment; filename=gen.txt');
header('Content-type: text/plain');