wp_tempnam() WP 2.6.0

Створює порожній тимчасовий файл, що перезаписується, з унікальним ім’ям у тимчасовому каталозі. Після використання файл обов’язково потрібно видалити за допомогою unlink() ;

Тимчасовий каталог можна вказати або його буде отримано за допомогою get_temp_dir() .

Після використання функції створений файл обов’язково потрібно видаляти за допомогою unlink() .

Ім’я файлу можна вказати вручну в першому параметрі $filename , воно буде використано як база для створення дійсно унікального імені файлу.

Для унікалізації переданого імені файлу до нього додається хеш і розширення .tmp. Наприклад, якщо вказати myfile, то отримаємо: /tmp/myfile-ADfs54f.tmp. Якщо не вказати базове ім’я файлу, то за базу імені буде взято позначку поточного часу: time() .

Для використання функції у фронті, потрібно підключити файл:

require_once ABSPATH. 'wp-admin/includes/file.php';

Основа для:
download_url()
1 раз – 0.000405 сек
(швидко) | 50000 разів – 5.08 сек
(швидко) |
PHP 7.1.11, WP 4.9.5

Хуків немає.

Повертає

Строку. Шлях до створеного файлу. При цьому файл створюється фізично та його потрібно видалити.

Використання

wp_tempnam ($ filename, $ dir);
$filename
(рядок)
Ім’я файлу, яке буде взято за базу для створення імені файлу.


За замовчуванням: ”
$dir
(рядок)
Шлях до тимчасового каталогу, в якому підбиратиметься ім’я файлу. Якщо не вказати, каталог буде отриманий через функцію
get_temp_dir() .


За замовчуванням: ”

Приклади

0

#1 Приклад того, що виводить функція

require_once ABSPATH. 'wp-admin/includes/file.php';

$filename = wp_tempnam(); //> /tmp/1524879129-OkwJkv.tmp

// Змінюємо файл і робимо з ним що-небудь

unlink($filename); // видаляємо файл

Ще приклади:

$filename = wp_tempnam( 'my_log_file'); //> /tmp/my_log_file-BmwSQw.tmp
unlink($filename);

$filename = wp_tempnam( 'my_log_file.log'); //> /tmp/my_log_file-AreTYU.tmp
unlink($filename);

$filename = wp_tempnam( '', $_SERVER['DOCUMENT_ROOT'].'/' ); //> /home/example.com/public_html/1524879213-ieQsRX.tmp
unlink($filename);

список змін

З версії 2.6.0Введено.

Код wp_tempnam() WP 6.0.2

function wp_tempnam( $filename = '', $dir = '' ) {
	if (empty($dir)) {
		$dir = get_temp_dir();
	}

	if ( empty( $filename ) || in_array( $filename, array( '.', '/', '' ), true ) ) {
		$filename = uniqid();
	}

	// Використовуйте основний файл файлу без розширення як назву для поточної директорії.
	$ temp_filename = basename ($ filename);
	$temp_filename = preg_replace( '|.[^.]*$|', '', $temp_filename );

	// Якщо folder is falsey, use its parent directory name instead.
	if (! $ temp_filename) {
		return wp_tempnam (dirname ($ filename), $ dir);
	}

	// Suffix деякі random data до avoid filename conflicts.
	$temp_filename .= '-' . wp_generate_password(6, false);
	$temp_filename .= '.tmp';
	$ temp_filename = $ dir . wp_unique_filename($dir, $temp_filename);

	$ fp = @ fopen ($ temp_filename, 'x');

	if ( ! $fp && is_writable( $dir ) && file_exists( $temp_filename ) ) {
		return wp_tempnam($filename, $dir);
	}

	if ($ fp) {
		fclose ($ fp);
	}

	return $ temp_filename;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *