0

多次元配列を取り、php ページのディレクトリ内のファイルに出力する次の PHP コードがあります。これはうまくいきます。

このコードが存在するページに一時的なダウンロードリンクを作成するソリューションを探しています。これにより、ユーザーはリンクをクリックするかどうかを選択でき、ページが閉じられたとき、または一定の時間にファイルが削除されます.

これを一時的に実装する方法の良い例は見つかりませんでした。tmpfile() を使用しても .csv ファイルを作成できないようです (.tmp だけです)。ページが読み込まれた後 (ユーザーがダウンロードするのに十分な時間) にファイルが存在するかどうかさえわかりません。

また、多くの例では、情報が $_POST 経由で既に入っていることを前提としています。コードが存在するページは、以前の POST アクションのターゲットです。$results 配列から理論的な download.php ファイルにデータを取得する方法がわかりません。

私は少し岐路に立っています。私の特定の質問は、今日 SO で見つけたものと重複していないようです。アイデア?(注: 空白の配列は、値の各セットのセパレータとしてのみ機能します)

$fp = fopen('file.csv','w'); 
foreach ($results as $arrays){
    foreach ($arrays as $fields) {
        fputcsv($fp, $fields);
    }
    $blanks = array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ');
    fputcsv($fp, $blanks);
}
fclose($fp);
4

1 に答える 1

1

問題は、実際のファイルを作成する必要があるときに一時ファイルを作成していることです。一時ファイルは、実行時に作成および破棄されることを意図しています。サーバー上に実際に短期間存在するファイルを作成しようとしている場合は、file_put_contents. その後、CSV の内容を含むファイルがサーバー上に作成されます。ファイルを作成し、HTML ページに渡すことができる場所を返す関数を作成できます。次に、ファイルが古くなった場合に時々ディレクトリを空にするためのクリーンアップ ルーチンを作成する必要があります。

これが正しい方向に向けられることを願っています!

于 2013-08-12T19:12:31.320 に答える