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


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

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

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

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

ЭОУ

Привет,

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

На данный момент у меня есть форма, в которой пользователь предоставляет некоторые сведения. При отправке он отправляется обратно самому себе, и переменные ЗАПИСИ обрабатываются. У меня есть готовый веб-шаблон HTML для размещения информации, который отлично работает и отлично работает, просто выполняя str_replace.

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

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

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

Author: lethalMango, 2010-12-07

4 answers

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

 19
Author: simshaun, 2017-05-23 12:26:05

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

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

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

header('Content-Disposition: attachment; filename="default-filename.txt"');
 61
Author: Quentin, 2010-12-06 22:53:53

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

<? //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;
 ?>
 26
Author: Dhiral Pandya, 2013-05-08 12:43:37
<?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;
?>
 0
Author: Chui Hui Chiu, 2016-03-04 17:37:39