Как я могу показать диалоговое окно «Сохранить как» с помощью PHP, который попросит пользователя загрузить строку в виде текстового файла? В основном я получаю некоторые значения из базы данных и хочу, чтобы вы могли загрузить .txt-файл, содержащий эти данные.
Это должно работать:
header('Content-type: text/plain'); header('Content-disposition: attachment; filename="test.txt"');
Просто чтобы расширить ответ @Emil H:
Использование этих вызовов заголовков будет работать только в контексте нового запроса. Вам нужно будет реализовать что-то, что позволит вашему скрипту знать, когда он фактически отправляет файл, а не когда он отображает форму, сообщающую пользователю загрузить файл.
<? header ("Content-Type: application/download"); header ("Content-Disposition: attachment; filename=$yourfile"); header("Content-Length: " . filesize("$yourfile")); $fp = fopen("$yourfile", "r"); fpassthru($fp); ?>
Чтобы прояснить использование header () :
Официальное руководство по PHP :
header () используется для отправки необработанного HTTP-заголовка. См. «Спецификация HTTP / 1.1» для получения дополнительной информации о заголовках HTTP.
Помните, что header () должен быть вызван до отправки любого фактического результата либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP. Очень распространенная ошибка для чтения кода с функциями include () или require () , функций или другой функции доступа к файлам, а также пробелы или пустые строки, которые выводятся перед вызовом header () . Та же проблема существует при использовании одного файла PHP / HTML.
Таким образом, в основном вы меняете всю страницу, когда используете header (). Убедитесь, что единственное содержимое, которое вы эхо, это строка.