#概要
PHPでファイルを変換したり、ダウンロードさせる処理を作る場合がある。
その時に、例えばダウンロードさせる処理の場合。
ユーザーにダウンロードさせた後はもういらない場合がよくある。
cronなどで自動的に消してもいいが、どうせなら最初から一時ファイルとして
扱ってしまえばいいのじゃないかと。
そんな時に便利なTips的な感じ。
サンプルphp
/*
例えば文字コードを変換してダウンロードさせる場合
変換後のファイルは別にサーバーに残しておく必要がない
(今回は、キャッシュの事はまた別次元として考える)
*/
//ローカルのファイルを読む
$data = file_get_contents("data.csv");
// 文字コード変換
$data = mb_convert_encoding($data, "UTF-8", "Shift_JIS");
//ここでメモリ上にファイルを作成する
$fp = fopen('php://memory', 'r+');
// 一時ファイルに書き込む
fwrite($fp, $data);
// 書き込んだデータを読み込みなおす
rewind($fp);
// 適当な処理を行い・・・
while ($row_value = fgetcsv($fp, 10000)) {
print_r($row_value);
}
// 最後にクローズする
fclose($fp);
一時ファイルであること以外は、
普通のファイルのように扱えるので処理が終わった後は自動的に消える。