0

CSVファイルを生成するヘッダー関数を使用してスクリプトを作成しました。詳しく説明します。ステップ1)mysqlにレコードを保存しています。ステップ2)データベースから保存したレコードからCSVファイルを作成しています。ステップ3)そのCSVを添付ファイルに添付して、別のレシピエントに送信できるようにします。2つの手順を完了しましたが、CSVファイルの生成プロセスでダウンロード機能を使用したくないので、このファイルを誰もが利用できるようにしたくありません。私のコードは次のようになります:

        $file_name = "Register_" . date('l');

        $file_name.=".csv";

      header("Content-type: application/octet-stream");
        header("Content-Disposition: attachment; filename=$file_name");
        header("Pragma: no-cache");

        header("Expires: 0");
        print "$header\n$data";

どこで変更する必要がありますか?

4

3 に答える 3

0

header()と最後のすべての呼び出しを削除するだけですprint

于 2012-10-03T08:53:13.117 に答える
0

ob_buffer 関数を使用して、生成された出力を「キャッチ」することで、実行しようとしていることができます。ただし、全体のアプローチは少し奇妙です。

ヘッダー関数は、メールの作成とは関係ありません。これらは、ブラウザが転送されたデータを処理する方法を指定する目的に役立ちます。これがあなたのすることだからです: あなたはヘッダーとデータを送信します。しないでください。

代わりに、csv データをバッファーまたはファイルに書き込み、利用可能なメール クラス (google...) のいずれかを使用してメールを作成します。次に、その細工されたメールを取得して送信します。そのために header() 関数は必要ありません。

于 2012-10-03T08:53:18.950 に答える
0

使用できますAddStringAttachment

$file_name = "Register_" . date('l') . ".csv";
$excelContent = "$header\n$data";
$phpmailer->AddStringAttachment($excelContent, $file_name, 'base64', 'application/vnd.ms-excel');
于 2012-10-03T08:58:28.637 に答える