Функция wp_tempnam()
создает временный файл с уникальным именем в указанной директории. Если директория не указана, используется путь к временной папке, возвращаемый функцией get_temp_dir()
. Имя файла может быть передано как параметр или создано на основе текущей метки времени. Файл создается физически, и разработчик обязан удалить его с помощью unlink()
после использования.
wp_tempnam( string $filename = ”, string $dir = ” ): string
Функция особенно полезна для создания временных файлов, которые не должны конфликтовать с другими файлами на сервере.
Параметры
$filename
(строка, необязательный) — Имя файла, которое будет использовано как база для создания уникального имени. Если не указано, используется текущая метка времени.- По умолчанию:
''
.
- По умолчанию:
$dir
(строка, необязательный) — Директория, в которой будет создан временный файл. Если не указано, используется временная папка, возвращаемая функциейget_temp_dir()
.- По умолчанию:
''
.
- По умолчанию:
Возвращаемое значение
Возвращает строку — путь к уникальному временному файлу, который можно использовать для чтения или записи. Файл физически создается в указанной (или временной) директории и должен быть удален вручную после использования.
Важные замечания
- Файл необходимо удалить вручную. Функция создает файл, который остается на сервере, пока его не удалят с помощью функции
unlink()
. - Файлы создаются без расширения. Файлы создаются с расширением
.tmp
, и при необходимости, можно добавить обработку расширений вручную.
Пример 1: Базовое использование
require_once ABSPATH . 'wp-admin/includes/file.php';
// Создание временного файла с уникальным именем
$temp_file = wp_tempnam();
echo "Временный файл: " . $temp_file; // Например: /tmp/1697453927-s7HR4k.tmp
// После использования файл необходимо удалить
unlink($temp_file);
Пример 2: Использование пользовательского имени файла
require_once ABSPATH . 'wp-admin/includes/file.php';
// Создание временного файла с базовым именем
$log_file = wp_tempnam('user_activity_log');
echo "Создан временный файл: " . $log_file; // Например: /tmp/user_activity_log-92aTyx.tmp
// Удаление файла после использования
unlink($log_file);
Пример 3: Указание пользовательской директории
require_once ABSPATH . 'wp-admin/includes/file.php';
// Указываем пользовательскую директорию для временного файла
$custom_temp_file = wp_tempnam('custom_file', $_SERVER['DOCUMENT_ROOT'].'/tmp_files/');
echo "Файл был создан в: " . $custom_temp_file; // Например: /var/www/html/tmp_files/custom_file-r9JsEz.tmp
// Удаляем временный файл
unlink($custom_temp_file);
Пример 4: Создание временного файла и запись данных
Этот пример показывает, как создать временный файл и записать в него данные.
require_once ABSPATH . 'wp-admin/includes/file.php';
// Создаем временный файл с уникальным именем
$data_file = wp_tempnam('data_storage');
// Записываем данные в файл
file_put_contents($data_file, "Это временные данные.");
// Читаем данные из файла
$content = file_get_contents($data_file);
echo "Содержимое временного файла: " . $content;
// Удаляем файл после использования
unlink($data_file);
Заключение
Функция wp_tempnam()
— это полезный инструмент для разработки плагинов и тем WordPress, позволяющий создавать временные файлы с уникальными именами. Важно помнить, что файлы, созданные с помощью этой функции, должны быть удалены вручную после использования.