19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでメモリ上に一時ファイルを作る

Last updated at Posted at 2015-07-06

#概要
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); 

一時ファイルであること以外は、
普通のファイルのように扱えるので処理が終わった後は自動的に消える。

19
17
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?