PHP создает случайный файл tmp и получает его полный путь


После того, как я сделаю:

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

Я хотел бы получить полный путь к файлу $temp, который был создан tmpfile.

Что мне нужно сделать, чтобы получить эту информацию?

3 23

3 ответа:

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

СмотритеЭтот пример .

tmpfile возвращает указатель на файл. Чтобы получить базовый путь, вам нужно запросить у потока его метаданные:

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

Преимущество подхода tmpfile? PHP автоматически удаляет $path, Когда $file выходит из области видимости. С помощью tempnam необходимо вручную удалить созданный файл.

Используйте функцию tempnam вместо этого?