Функция get_temp_dir()
возвращает путь к директории, доступной для записи временных файлов. Важное свойство этой функции — она автоматически определяет наиболее подходящую директорию для хранения временных файлов, проверяя права на запись по очередности различных возможных местоположений.
get_temp_dir(): string
Функция сначала проверяет значение константы WP_TEMP_DIR
, затем значение, возвращаемое системной функцией PHP sys_get_temp_dir()
, далее — значение опции upload_tmp_dir
в настройках PHP, затем директорию WP_CONTENT_DIR
WordPress и, наконец, по умолчанию — путь /tmp/
.
Порядок выбора временной директории:
- WP_TEMP_DIR — если константа определена в файле
wp-config.php
, она будет использована. - sys_get_temp_dir() — возвращает путь, заданный системной функцией PHP для временных файлов.
- ini_get(‘upload_tmp_dir’) — проверяет директиву PHP
upload_tmp_dir
для пути загрузки временных файлов. - WP_CONTENT_DIR — директория контента WordPress.
- /tmp/ — стандартный временный каталог на сервере, используемый в случае, если остальные пути не подходят.
Если директория найдена, но запись в неё невозможна, функция продолжит поиск, пока не найдет доступное место.
Возвращаемое значение
Функция возвращает строку — путь к директории, доступной для записи временных файлов. Путь всегда заканчивается слэшем.
Пример использования
$temp_dir = get_temp_dir();
echo $temp_dir; // Выведет: /server/tmp/
Пример 1: Получение пути к временной директории
$temp_dir = get_temp_dir();
echo "Временная директория: " . $temp_dir;
// Выведет, например: /var/www/html/wp-content/tmp/
Пример 2: Создание новой директории внутри временной директории
Этот пример создает новую папку custom_folder внутри временной директории, если она еще не существует.
$my_tmp_dir = get_temp_dir() . 'custom_folder ';
if ( ! is_dir( $my_tmp_dir ) ) {
mkdir( $my_tmp_dir );
echo "Каталог custom_folder был создан в: " . $my_tmp_dir;
} else {
echo "Каталог custom_folder уже существует.";
}
Пример 3: Использование временного файла
Для создания временного файла во временной директории можно использовать функцию wp_tempnam()
, которая использует get_temp_dir()
для определения пути.
$temp_file = wp_tempnam();
file_put_contents( $temp_file, 'Временные данные' );
echo "Временный файл создан: " . $temp_file;
Дополнительная информация
- Функция использует wp_is_writable() для проверки прав на запись в каждую директорию, начиная с
WP_TEMP_DIR
и заканчивая/tmp/
. - Для создания временных файлов используйте функцию
wp_tempnam()
, которая гарантирует создание уникального временного файла.
Заключение
Функция get_temp_dir()
— это удобный инструмент для определения временной директории с проверкой прав доступа и готовностью к использованию во многих задачах WordPress.