Идея просто - с помощью функции header() выставляем соответствующие заголовки HTTP запроса(которые необходимы, чтобы передаваемые клиентской программе - браузеру данные были восприняты как файл, который надо скачать), а затем с помощью echo пишем текст в файл, например: