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 に答える