提供可变内容的文件下载。 PHP

时间:2014-08-21 00:27:43

标签: php

如果我们有以下

<form method="post" action="">
<input type="hidden" name="token" value="1">
<input type="submit">
</form>

<?php

if(isset($_POST['token']))
{    

    $v = 'NAME,COLOR
          jack,blue
          ivan,gold';

    header("Content-Type: text/csv");
    header("Content-Disposition: attachment; filename=\"file.csv\"");
    header('Expires: ' . gmdate('D, d M Y H:i:s', gmmktime() - 3600) . ' GMT');
    //header("Content-Length: " . filesize($path));

    echo $v;

}

当我运行脚本时,浏览器会提示我下载,当下载文件并检查内容时,它还包含文件中的HTML($ v数据上方)标记。

我希望文件只包含 $ v 变量数据。

1 个答案:

答案 0 :(得分:0)

输出的任何内容都将输出。 HTTP请求一次用于一个资源。您不能期望发送网页,也不希望将其作为文件内容的一部分。 PHP无法读懂您的想法并知道您的代码的哪一部分适用于浏览器,以及下载资源的部分内容。

你需要制作一个单独的脚本,它只会返回一个资源......要下载的文件。使用<?php启动脚本,没有空格。如果您的文件纯粹是PHP(并且可能是它),请不要以?>结束它以避免最后的空格。