PHPでテンポラリファイルを作るには tmpfile() を使用します。
<? $fp = tmpfile();
どこに作られたかは内緒なので、ファイル名を取得したいときは stream_get_meta_data() で取り出します。
<? $fp = tmpfile(); $meta = stream_get_meta_data($fp); print_r($meta);
Array ( [timed_out] => [blocked] => 1 [eof] => [wrapper_type] => plainfile [stream_type] => STDIO [mode] => r+b [unread_bytes] => 0 [seekable] => 1 [uri] => /tmp/phpDiDGX6 )
このテンポラリファイルはだいたい /tmp の下に適当に作られます。
ちょうど tempnam(sys_get_temp_dir(), "php") のような感じです。
-rw------- 1 hoge hoge 0 Oct 10 14:15 /tmp/phpDiDGX6
パーミッションは600になります。 umask(0)していても関係ありません。
通常はプログラム終了時に自動で削除されますが、なんらかの意地悪により殺された場合は ファイルが残ります。
<?php $fp = tmpfile(); posix_kill(posix_getpid(), SIGKILL);
/tmpなど、tmpwatchが見張ってくれる場所なら問題ないけども、デフォルトから変更している場合は誰も面倒を見てくれないので サーバ用途では注意が必要です。