Идея просто - с помощью функции header() выставляем соответствующие заголовки HTTP запроса(которые необходимы, чтобы передаваемые клиентской программе - браузеру данные были восприняты как файл, который надо скачать), а затем с помощью echo пишем текст в файл, например:
header('Content-disposition: attachment; filename=gen.txt');
header('Content-type: text/plain');
// далее записываем в файл текст
echo "'это первая строка скачиваемого файла \r\n";
echo " это ВТОРАЯ строка скачиваемого файла";