web-dev-qa-db-ja.com

PHPランダムなtmpファイルを作成し、そのフルパスを取得

私がした後:

$temp = tmpfile();
fwrite($temp, "writing to tempfile");

tmpfileが作成した$tempファイルへのフルパスを取得したいです。

その情報を取得するには何をする必要がありますか?

32
Farzher
$path = tempnam(sys_get_temp_dir(), 'prefix');

この例 を参照してください。

30
Alix Axel

tmpfile は、ストリーム可能なファイルポインターを返します。

対応するパスを取得するには、 メタデータのストリームを要求

$file = tmpfile();
$path = stream_get_meta_data($file)['uri']; // eg: /tmp/phpFx0513a

tmpfileアプローチの利点は? PHPは自動的に$path いつ $fileは範囲外になります。 tempnamを使用すると、作成したファイルを手動で削除する必要があります。

49
bishop