Функция WP_NORMALIZE_PATH()
Описание
Функция WP_NORMALIZE_PATH()
используется для нормализации пути к файлу в файловой системе. Это означает, что она преобразует путь в единообразный формат, который будет понятен операционной системе.
Основные особенности
- На Windows она заменяет обратные слэши (
) и приводит букву диска к верхнему регистру.) на прямые слэши (
/ - Разрешает два начальных слэша для сетевых папок в Windows, но сводит все остальные дублирующиеся слэши к одному.
- Включает в себя использованием функции
wp_is_stream()
.
Производительность
- 1 раз — 0.000001 сек (скорость света)
- 50000 раз — 0.05 сек (скорость света)
Возвращаемое значение
- Строка. Нормализованный путь.
Использование
Синтаксис
wp_normalize_path( $path );
Параметры
- $path (строка, обязательный): Путь, который нужно нормализовать.
Примеры
Пример 1: Убедитесь, что путь к файлу правильный
Предположим, мы разрабатываем путь к файлу и хотим убедиться, что в нём нет двойных слэшей или обратных слэшей. Для этого мы передаем получившийся путь в wp_normalize_path()
:
echo wp_normalize_path( 'wwwexample.comwp-content/uploads//file.jpg' );
// Результат: /www/example.com/wp-content/uploads/file.jpg
echo wp_normalize_path( 'https://test.com//something/' );
// Результат: https://test.com/something/
echo wp_normalize_path( '//test.com//something/' );
// Результат: //test.com/something/
echo wp_normalize_path( 'c://some/path//file.jpg' );
// Результат: C:/some/path/file.jpg
echo wp_normalize_path( 'c:/Projectsapi/apilibrary.sln' );
// Результат: C:/Projects/api/apilibrary.sln
Изменения
- С версии 3.9.0 — Функция была введена.
- С версии 4.4.0 — Обеспечивает буквы диска в верхнем регистре на Windows.
- С версии 4.5.0 — Поддерживает сетевые папки Windows.
- С версии 4.9.7 — Позволяет использовать PHP-обертки для файлов.
Исходный код функции
function wp_normalize_path( $path ) {
$wrapper = '';
if ( wp_is_stream( $path ) ) {
list( $wrapper, $path ) = explode( '://', $path, 2 );
$wrapper .= '://';
}
// Приводим все пути к виду с '/'.
$path = str_replace( '', '/', $path );
// Заменяем несколько слэшей на один, позволяя при этом два слэша для сетевых папок.
$path = preg_replace( '|(?<=.)/+|', '/', $path );
// Для путей Windows буква диска должна быть в верхнем регистре.
if ( ':' === substr( $path, 1, 1 ) ) {
$path = ucfirst( $path );
}
return $wrapper . $path;
}
Связанные функции
get_attached_file()
get_home_path()
get_parent_theme_file_path()
get_temp_dir()
get_template()
get_theme_root()
path_join()
plugin_dir_path()
search_theme_directories()
wp_basename()
wp_get_upload_dir()
wp_tempnam()
wp_upload_dir()
Заключение
Функция wp_normalize_path()
— это простой и полезный инструмент для работы с путями к файлам в WordPress. Она помогает избежать ошибок, связанных с неправильным форматом путей, и делает код более универсальным. Éта функция удобно использовать как новичкам, так и опытным разработчикам, обеспечивая корректную работу с файловой системой.