【php】phpで一時ファイルをメモリ上に作る
問題
phpの tmpfile() ってOSの機能を使って、必ずファイルを作ってしまうらしい。
小さいファイルは、メモリ上の一時ファイルで対応したい。

答え
fopen('php://memory', 'r+') とか fopen('php://temp', 'r+') とかを使うとよい。
php://temp は容量が大きくなると実ファイルを作るそうです。
CSV読み込み処理で使ってみた例
$data = array();
$csv = mb_convert_encoding(file_get_contents($f['tmp_name']), 'UTF-8', 'sjis-win');
//$fp = fopen('php://memory', 'r+');
$fp = fopen('php://temp', 'r+');
fwrite($fp, $csv);
rewind($fp);
$_locale = setlocale(LC_ALL, '0');
setlocale(LC_ALL, 'ja_JP.UTF-8');
while ($v = fgetcsv($fp, 10000)) {
$data[] = $v;
}
setlocale(LC_ALL, $_locale);
fclose($fp);