从变量下载文本内容


Download text content from variable

我创建了一个php脚本,它创建了一个文本字符串,我将它显示在屏幕上。您知道如何将变量内容仅作为文本文件下载吗?我已经试过这样做了:

...
<body>
<?php
$download_me = "download me...";
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=test.txt");
echo $download_me;
?>
</body>
...

但是这会创建一个包含整个HTML文档的文本文件:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
download me...</body>
</html>

这部分代码本身会做你想做的事情:

<?php
$download_me = "download me...";
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=test.txt");
echo $download_me;
?>

但是,您将该代码包装在HTML代码中。这意味着两件事:

  1. 在你已经开始发送输出后,你正在尝试修改标题。
  2. 被回显的文本不是唯一的内容,您还输出了周围的HTML。

第一个问题可能是在服务器日志中产生错误。如果代码悄悄地忽略了这个问题并继续执行,那么第二个问题将解释您所看到的输出。您看到HTML是因为,嗯,您正在输出HTML。

如果您不想输出HTML,请从输出中删除HTML。只需使用发送文本文件响应的代码。

我已经创建了一个包含以下内容的文件:

<?php
    $download_me = "download me...";
    header("Content-type: text/plain");
    header("Content-Disposition: attachment; filename=test.txt");
    echo $download_me;
?>

它成功了,它下载了一个txt文件