wp_parse_url()
Розбирає надісланий URL на компоненти. Уніфікує роботу PHP функції parse_url() (обгортка для неї).
Що саме робить функція:
Стандартизує (уніфікує) роботу parse_url() і дає змогу вказати:
- URL без протоколу (починається з
//
). - Відносний URL (починається з
/
).
Правильне визначення хоста посилання без протоколу було виправлено для parse_url() у версії PHP 5.4.7.
- URL без протоколу (починається з
- Пригнічує помилки, що повертаються parse_url() . До PHP 5.3.3 parse_url() створював помилку рівня
E_WARNING
, коли не міг розібрати URL.
З версії 4.7.0. був доданий параметр $component
, щоб відповідати PHP функції parse_url() .
Працює на основі:
_get_component_from_parsed_url_array()
_get_component_from_parsed_url_array()
1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.07 сек
(швидкість світла) |
PHP 7.2.5, WP 5.0
(швидкість світла) | 50000 разів – 0.07 сек
(швидкість світла) |
PHP 7.2.5, WP 5.0
Хуків немає.
Повертає
Разное
.
Коли компонент не вказано:
array
– масив компонентів URL за успішного аналізу.false
– при помилці аналізу.
Коли вказано компонент:
строка/число
– значення компонента URL (число повернеться для компонентаPHP_URL_PORT
).null
– компонент відсутній у надісланому URL.
Докладніше про дані, що повертаються, дивіться в описі parse_url() .
Використання
wp_parse_url($url, $component);
-
$url
(рядок) (обов’язковий) - URL для аналізу.
-
$component
(число) Компонент URL для отримання. Замість числа можна використовувати одну з визначених констант PHP:
PHP_URL_SCHEME PHP_URL_HOST PHP_URL_PORT PHP_URL_USER PHP_URL_PASS PHP_URL_PATH PHP_URL_QUERY PHP_URL_FRAGMENT
За замовчуванням: -1 (повертає всі частини масиву)
Приклади
#1 Демонстрація роботи
$url = 'https://example.com/path?arg=value#anchor';
$parts = wp_parse_url($url);
/*
$parts = Array (
[scheme] => https
[host] => example.com
[path] => /path
[query] => arg=value
[fragment] => anchor
)
*/
echo wp_parse_url( $url, PHP_URL_SCHEME ); // https
echo wp_parse_url( $url, PHP_URL_HOST ); // example.com
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
Приклад аналізу всіх можливих компонентів URL:
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
$parts = wp_parse_url($url);
/*
$parts = Array (
[scheme] => http
[host] => hostname
[port] => 9090
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => 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
#2 Парсинг URL за відсутності протоколу
$url = '//www.example.com/path?googleguy=googley';
$url_parts = wp_parse_url($url);
/*
$url_parts = Array (
[host] => www.example.com
[path] => /path
[query] => googleguy=googley
)
*/
#3 Парсинг URL за відсутності домену
$parts = wp_parse_url( '/no-dom?param=1#anchor' );
/*
Array (
[path] => /no-dom
[query] => param=1
[fragment] => anchor
)
*/
список змін
З версії 4.4.0 | Введено. |
З версії 4.7.0 | $component parameter був added for parity with PHP’s parse_url () . |