Parse_url () функция
- Подробности
- Категория: PHP
- Просмотров: 11683
Часто используемые функции php я решил выносить в отдельные статьи...потому что запросы обычно бывают именно целевые, то есть люди ищут именно ответ на вопрос по определенной функции...сегодня разберем функцию parse_url()...
Что делает функция
Очень непросто понять начинающему по тем материалам, что есть в сети, что делает эта функция...(я пишу это для себя, чтобы лучше понимать, но может и вам пригодиться) ...давайте поподробнее:
Она разбирает(распарсивает адрес урл) на фрагменты, сразу пример:
$url = 'http://saitsozdanie.ru/php/parse-url-funktsiya.html';
print_r(parse_url($url));
echo "<br>";
echo parse_url($url, PHP_URL_PATH);
Ответ получаем такой:
Array ( [scheme] => http [host] => saitsozdanie.ru [path] => /php/parse-url-funktsiya.html )
/php/parse-url-funktsiya.html
То есть print_r показывает то, что перед нами массив и мы его раскладываем на кусочки, а вторая строчка уже показывает необходимый нам фрагмент, который мы выделили с помощью константы PHP_URL_PATH.
Разберем подробнее что получает parse_url()
Функция parse_url(), как мы уже убедились, получает ассоциативный массив, но он может получать и другие элементы адресной строки:
- scheme - например, http
- host
- port
- user
- pass
- path
- query - после знака вопроса ?
- fragment - после знака диеза #
Как мы уже убедились для этого достаточно указать константу, из - Укажите одну из констант: PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY или PHP_URL_FRAGMEN.
!!! Все возвращают string и только PORT - integer.
Тут встретил одно интересное примечание на php.ru
Они пишут - мол эта функция предназначена специально для разбора URL-адресов, а не URI (типа она не работает с относительными путями, а только с абсолютными).
Проверим, вот что она вернет при:
Она разбирает(распарсивает адрес урл) на фрагменты, сразу пример:
$url = 'php/parse-url-funktsiya.html';
print_r(parse_url($url));
echo "<br>";
echo parse_url($url, PHP_URL_PATH);
Ответ получаем такой:
Array ([path] => php/parse-url-funktsiya.html )
php/parse-url-funktsiya.html
Так что работать можно...)