0

ファイルの読み取りから取得した配列からcsvファイルを作成する際に問題が発生しました。

if(isset($_POST['expcsvmail'])){
        $filemail= '../config/mail.txt';
        $mail=file($filemail, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        $fp = fopen('exported_mails.csv', 'w+');
        foreach($mail as $df)
            fputcsv($fp, array($df));
        fclose($fp);
        header("Content-Type: text/csv");
        header("Cache-Control: no-store, no-cache");
        header("Content-Description: List of Emails");
        header("Content-Disposition: attachment;filename=exported_mails.csv");
        header("Content-Transfer-Encoding: binary");
        readfile('exported_mails.csv');
        unlink('exported_mails.csv');
    }

そして、これは私がそれを呼ぶ方法です:

<form action="function.php" target="hidden_upload" class='formcor' method='post'>
    <input type="submit" id='expcsvmail' name='expcsvmail' value="Export Emails to CSV" class='sendval'/>

今私は2つの振る舞いを持っています:ページの更新後にそれを呼び出す場合(基本的にコードは呼び出しページ内にあります)、配列の後、ページのすべてのコード内にcsvが入りますそれ以外の
場合は外部ファイルファイルの最後に改行があります(そこにあるべきではありません)
誰かが私を助けてくれますか?ありがとう

4

1 に答える 1

0

exit()ステートメントの最後で呼び出してif()、ページの残りの部分の処理を停止する必要があります。この場合、PHPスクリプトをプレーンテキストとしてページに出力します。

于 2013-03-10T22:30:09.427 に答える