Функция wp_parse_url()
является оберткой для функции PHP parse_url()
, которая разбивает URL на его составляющие. Она обеспечивает согласованность возвращаемых значений на различных версиях PHP, включая обработку URL без схемы и относительных URL. Эта функция решает некоторые проблемы, связанные с непоследовательной обработкой URL в разных версиях PHP.
wp_parse_url( string $url, int $component = -1 ): mixed
Параметры
$url
(string, обязательный) – URL, который необходимо разобрать.$component
(int, опционально) – Конкретный компонент для извлечения. Можно использовать одну из предопределенных констант PHP. По умолчанию -1 (возвращает все части в виде массива).
Возвращаемое значение
- При успешном разборе:
- array – массив компонентов URL.
- false – при ошибке разбора.
- При указании компонента:
- string или integer – значение компонента.
- null – если компонент отсутствует в URL.
Пример 1: Разбор полного URL
В этом примере мы разбираем полный URL и получаем его компоненты.
$url = 'https://developer.wordpress.org/reference/functions/wp_parse_url/';
$parts = wp_parse_url($url);
print_r($parts);
/*
Array
(
[scheme] => https
[host] => developer.wordpress.org
[path] => /reference/functions/wp_parse_url/
)
*/
Пример 2: Извлечение конкретного компонента
Вы можете использовать константы для получения определенных компонентов URL.
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
echo wp_parse_url($url, PHP_URL_SCHEME); // http
echo wp_parse_url($url, PHP_URL_HOST); // hostname
echo wp_parse_url($url, PHP_URL_PORT); // 9090
echo wp_parse_url($url, PHP_URL_USER); // username
echo wp_parse_url($url, PHP_URL_PASS); // password
echo wp_parse_url($url, PHP_URL_PATH); // /path
echo wp_parse_url($url, PHP_URL_QUERY); // arg=value
echo wp_parse_url($url, PHP_URL_FRAGMENT); // anchor
Пример 3: Парсинг URL без протокола
Функция может также разбирать URL, которые начинаются с //
.
$url = '//www.example.com/path?query=value';
$url_parts = wp_parse_url($url);
print_r($url_parts);
/*
Array
(
[host] => www.example.com
[path] => /path
[query] => query=value
)
*/
Пример 4: Парсинг относительного URL
Если вы передадите относительный URL, функция все равно сможет разобрать его.
$url = '/relative/path?param=1#fragment';
$parts = wp_parse_url($url);
print_r($parts);
/*
Array
(
[path] => /relative/path
[query] => param=1
[fragment] => fragment
)
*/
Пример 5: Обработка URL с ошибками
Функция также обрабатывает URL, которые могут быть некорректными или неполными.
$url = 'http://example.com/path:1234';
$parts = wp_parse_url($url);
print_r($parts);
/*
Array
(
[scheme] => http
[host] => example.com
[path] => /path:1234
)
*/
Заключение
Функция wp_parse_url()
в WordPress является полезным инструментом для разбора URL на его компоненты. Благодаря унифицированному подходу к обработке URL, она упрощает задачу для разработчиков, обеспечивая корректное извлечение информации независимо от версии PHP. Эта функция может быть использована в различных сценариях, таких как анализ URL-адресов, создание маршрутов и работа с данными в API.