Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

parse_url() и parse_str() php

parse_url() и parse_str()  php

Всем привет в этой небольшой статье мы с вами познакомимся с функциями parse_url() и parse_str() которые позволяют разбивать url строку на составляющие элементы. Под составляющими элементами я понимаю (протокол, хост, порт, параметры и т.п)

Допустим у нас есть следующая url строка:

$url_str = "https://webfanat.com:8083/article_id?id=136#136";

И мы хотим разбить ее на фрагменты. Для этого достаточно воспользоваться функцией parse_url().

var_dump(parse_url($url_str));

В данную функцию мы передаем нашу url строку и на выходе получаем ассоциативный массив содержащий следующие пары свойств и значений.

scheme => https

host => webfanat.com

port => 8083

path=> /article_id

query=> id=136

fragment=>136

Как видите вся наша url строка была разбита на составные ее части. Теперь нам достаточно просто обратится к любому ключу массива для получения его содержимого. К примеру мы хотим получить номер порта.

var_dump(parse_url($url_str)['port']);

В результате нам вернется номер порта. Если нам требуется получить одно или несколько значений фрагментов url строки мы можем в функцию parse_url() передать второй аргумент в виде надстройки.

Пример, получение параметров адресной строки.

var_dump(parse_url($url_str, PHP_URL_QUERY));

Как видите здесь для получения параметров адресной строки мы воспользовались константой PHP_URL_QUERY. Остальные фрагменты url строки мы можем получать точно также по аналогии(PHP_URL_SCHEME - scheme, PHP_URL_PORT - port и т.п.)

Давайте рассмотрим теперь функцию parse_str(). Данная функция позволяет обрабатывать строку параметров url.

$url_str = "https://webfanat.com:8083/article_id?id=136&new=1#136";
$query = parse_url($url_str, PHP_URL_QUERY);
parse_str($query, $output);
var_dump($output);

В саму функцию мы передаем строку параметров url и переменную($output) в которую будет возвращен результат. Отмечу что наличие второго аргумента обязательно!

В итоге у нас в переменную $output записывается ассоциативный массив содержащий пары свойств и значений параметров url строки.

var_dump($output['id']);// значение параметра id
var_dump($output['new']);// значение параметра new

В общем функцию parse_str() мы можем применять к любым строкам такого формата(?свойство=значение&свойство=значение)

На этом данная статья подошла к концу. Не забывайте оставлять комментарии.

Удачи!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm