Функция WP_NORMALIZE_PATH(): описание, особенности, использование, примеры

Функция 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. Она помогает избежать ошибок, связанных с неправильным форматом путей, и делает код более универсальным. Éта функция удобно использовать как новичкам, так и опытным разработчикам, обеспечивая корректную работу с файловой системой.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *