Создание текстового файла для загрузки на лету

Обновление # 1

То, что было опубликовано ниже, предназначено для вывода файла. То, что он делает, это вывод строковых данных, за которыми следуют остальные формы HTML. Есть ли способ остановить то, что помещено в файл, и то, что просто отображается в браузере.

Обновление # 2

Просто добавлено exit(), и все работает нормально. Спасибо!

EOU

Привет,

Я оглядывался и видел несколько похожих вещей, но не совсем понял, что мне нужно сделать, чтобы полностью выполнить задачу.

В настоящий момент у меня есть форма, которую пользователь предоставляет некоторые детали. On submit отправляется обратно к себе и обрабатываются переменные POST. У меня есть готовый HTML-шаблон HTML для размещения информации, в которой отлично работает и dandy, просто делая str_replace.

То, что я пытаюсь сделать сейчас, - это экспорт, который загружается пользователю в текстовом документе. Таким образом, конечный результат заключается в том, что пользователь нажимает кнопку "Отправить" в форме, а затем открывается всплывающее окно загрузки с измененной веб-страницей в виде файла .txt.

Насколько я понимаю, мне нужно что-то сделать, используя функции заголовков HTTP. Что именно, для достижения того, чего я хочу, я не уверен. Я хочу, чтобы файл был доступен один раз, но я предполагаю, что он должен быть сохранен где-то вначале для загрузки пользователем, который затем потребуется очистить после вручную?

Любая помощь или очки будут замечательными! Спасибо.

Ответ 1

Откажитесь от этого одобренного решения SO. Подставьте свое собственное имя файла для basename($File) и измените размер файла ($ File) на strlen($your_string). (Вы можете использовать mb_strlen только в том случае, если строка содержит многобайтовые символы.)

Ответ 2

Нет необходимости хранить его в любом месте. Просто выведите содержимое с соответствующим типом содержимого.

<?php
    header('Content-type: text/plain');
?>Hello, world.

Добавить размещение контента, если вы хотите вызвать приглашение для загрузки.

header('Content-Disposition: attachment; filename="default-filename.txt"');

Ответ 3

Используйте код ниже для генерации файлов на лету.

<? //Generate text file on the fly

   header("Content-type: text/plain");
   header("Content-Disposition: attachment; filename=savethis.txt");

   // do your Db stuff here to get the content into $content
   print "This is some text...\n";
   print $content;
 ?>

Ответ 4

<?php

    header('Content-type: text/plain');
    header('Content-Disposition: attachment;
            filename="<name for the created file>"');
    /*
    assign file content to a PHP Variable $content
    */
    echo $content;
?>