get_temp_dir() WP 2.5.0

Отримує шлях до папки, в яку можна записувати тимчасові файли. Зі слешем на кінці.

Папка тимчасових файлів підбирається в наступній черговості (повертається перша папка для якої є право на запис):

  1. Константа WP_TEMP_DIR . Якщо в цій константі визначити шлях до тимчасової папки, то буде використано його. За умовчанням ця константа у ВП не визначена. Константу потрібно визначати у файлі wp-config.php .
  2. PHP функція sys_get_temp_dir() – повертає шлях до тимчасової папки на сервері.
  3. PHP опція ini_get(‘upload_tmp_dir’) – містить шлях до тимчасової папки на сервері.
  4. Константа WP_CONTENT_DIR містить шлях до папки контенту ВП.
  5. /tmp/ – жорсткий шлях до папки на сервері.

Кожна папка спочатку перевіряється на можливість записати файл, через wp_is_writable() .

Щоб створити тимчасовий файл у тимчасовій папці, використовуйте wp_tempnam()

1 раз – 0.00001 сек
(швидкість світла) | 50000 разів – 0.03 сек
(швидкість світла) |
PHP 7.1.11, WP 4.9.5

Хуків немає.

Повертає

Строку. Дорога до доступної для запису тимчасової папки на сервері.

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

$ temp_dir = get_temp_dir ();

Приклади

0

#1 Отримаємо шлях тимчасової папки

echo get_temp_dir(); ///server/tmp/
0

#2 Створюємо каталог my_test у тимчасовому каталозі, якщо він ще не існує

$my_tmp_dir = get_temp_dir(). '/my_test';
if( ! is_dir($my_tmp_dir) ){
	mkdir($ my_tmp_dir);
}

список змін

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

Код get_temp_dir() WP 6.0.2

function get_temp_dir() {
	static $ temp = '';
	if ( defined( 'WP_TEMP_DIR' ) ) {
		return trailingslashit( WP_TEMP_DIR );
	}

	if ($ temp) {
		return trailingslashit( $temp );
	}

	if ( function_exists( 'sys_get_temp_dir' ) ) {
		$temp = sys_get_temp_dir();
		if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
			return trailingslashit( $temp );
		}
	}

	$ temp = ini_get ( 'upload_tmp_dir');
	if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
		return trailingslashit( $temp );
	}

	$ temp = WP_CONTENT_DIR . '/';
	if ( is_dir( $temp ) && wp_is_writable( $temp ) ) {
		return $ temp;
	}

	return '/tmp/';
}

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

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