1

在我的代码中,我正在使用 fgetcsv 创建一个文件。我下载并打开文件,但我页面中的所有 html 都包含在 csv 文件中。无论如何,我可以只拥有我想从文件中输出的数据,而不是额外的 html。我创建 csv 的函数如下

function makefile()
{
    header('Content-type: text/csv');
    header("Cache-Control: no-store, no-cache"); 
    header("Content-Disposition: attachment;filename=file.csv");

    $this->filepointer  =   fopen('php://output', 'a');



    for($count=0;$count < count($this->alldata);$count++)
    {
       fputcsv($this->filepointer, $this->alldata[$count]);
    }

    fclose($this->filepointer);

}

我也想知道如果我使用 $this->filepointer = fopen('file.csv', 'w') 文件是否仍会填充 html。因为我不必下载文件,所以我只是用它来检查文件是否以正确的格式创建。再次感谢

4

2 回答 2

1

你可以试试下面的代码。在设置一些标题后,您需要在末尾添加 read_file,如下所示。

<?php
if(isset($_GET['link']))
{
    $var_1 = $_GET['link'];
    $file = $var_1;

if (file_exists($file))
    {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
    }
} //- the missing closing brace
?>
于 2016-10-07T13:30:18.587 回答
0

使用 ob_end_clean() ;在写文件之前

于 2015-03-13T04:08:03.857 回答