(PHP 5 >= 5.2.1)

sys_get_temp_dir Возвращает путь к директории временных файлов


string sys_get_temp_dir ( void )

Возвращает путь к директории, где PHP по умолчанию хранит временные файлы.

Возвращаемые значения

Возвращает путь к директории временных файлов.


Пример #1 Пример использования sys_get_temp_dir()

// Создание временного файла в директории
// временных файлов, используя sys_get_temp_dir()
$temp_file tempnam(sys_get_temp_dir(), 'Tux');


Результатом выполнения данного примера будет что-то подобное:


Смотрите также

  • tmpfile() - Создаёт временный файл
  • tempnam() - Создаёт файл с уникальным именем


This function does not always add trailing slash. This behaviour is inconsistent across systems, so you have keep an eye on it.
2008-01-29 06:08:41
There's no need to use a random name for the directory for tempnam.

Since a file and a directory can't share the same name on the filesystem, we can exploit this and simply use the name of the current file. It is guaranteed that the directory won't exist (because it's a file, of course).

if ( !function_exists('sys_get_temp_dir')) {
sys_get_temp_dir() {
    if (!empty(
$_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty(
$_ENV['TMPDIR'])) { return realpath$_ENV['TMPDIR']); }
    if (!empty(
$_ENV['TEMP'])) { return realpath$_ENV['TEMP']); }
    if (
file_exists($tempfile)) {
2009-09-07 16:11:40
This function does not account for virtualhost-specific modifications to the temp path and/or open_basedir:

php_admin_value open_basedir /home/user
php_admin_value upload_tmp_dir /home/user/tmp
php_admin_value session.save_path /home/user/tmp

Within this config it still returns /tmp
2010-03-29 16:06:59
It's not documented but this function does not  send the path with trailing spaces, actually it drops the slash if it exists.
2014-01-31 13:56:56
As of PHP 5.5.0, you can set the sys_temp_dir INI setting so that this function will return a useful value when the default temporary directory is not an option.
2014-06-11 23:27:51
it should be mentioned that the return value of sys_get_temp_dir() can be set using the ini-directive 'sys_temp_dir' globally as well as per directory by using
php_admin_value sys_temp_dir /path/to/tmp
2015-04-24 13:44:40
A very helpful thing to note when on Linux:

If you are running PHP from the commandline you can use the environment variable: TMPDIR - to change the location without touching php.ini. - This should work on most versions of PHP.

Example file: test.php
echo sys_get_temp_dir() . PHP_EOL;

And then running:

php test.php
TMPDIR=/custom/location php test.php
2015-09-17 14:07:05
when the sys_temp_dir directive is left unset, sys_get_temp_dir() returns C:\Windows on my Windows.
2016-07-18 20:17:54
If running on a Linux system where systemd has PrivateTmp=true (which is the default on CentOS 7 and perhaps other newer distros), this function will simply return "/tmp", not the true, much longer, somewhat dynamic path.
2017-05-11 18:40:43

    Поддержать сайт на родительском проекте КГБ