Блог веб разработки

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

Кодирование и декодирование url строк в php

Всем привет. Сегодня мы познакомимся с основными функциями кодирования и декодирования url строк в php. Это прежде всего необходимо для корректной передачи данных через GET запросы. Итак, поехали!

Первая функция которую мы рассмотрим будет генерировать кодированную строку параметров url строки.

Допустим у нас есть некий массив свойств и значений которые мы хотим преобразовать в параметры адресной строки.

$url = "https://mysite.com";

$data = [
        'id'=>'4343443',
        'date'=>'34343434',
        'token'=>'4ycr7btr65ort6t5vor6t5voc'
];

$url_string =  $url.'?'.http_build_query($data);

echo $url_string;

Для этого мы используем функцию http_build_query().

Данная функция принимает аргумент в виде ассоциативного массива и преобразует его в кодированную url строку в виде параметров url. Причем данная функция может принимать и преобразовывать многоуровневые ассоциативные массивы.

$url = "https://mysite.com";
$data = [
        'id'=>'4343443',
        'date'=>'34343434',
        'token'=>'4ycr7btr65ort6t5vor6t5voc',
        'user'=>[
                'name' => 'Andrey',
                'age' => 24
        ]
];

$url_string =  $url.'?'.http_build_query($data);

echo $url_string;

Отлично, идем дальше! Следующие функции которые мы рассмотрим кодируют и декодируют строку согласно RFC 3986.

$url = "https://mysite.com/test/?id=23";

echo rawurlencode($url);

Функция rawurlencode() кодирует строку.

$url = "https%3A%2F%2Fmysite.com%2Ftest%2F%3Fid%3D23";

echo rawurldecode($url);

А функция rawurldecode() декодирует строку, то есть преобразует ее обратно.

Следующие функции urlencode() и urldecode() практически ничем не отличаются от предыдущих за исключением кодирования символа пробела. Символ пробел при кодировании данными функциями преобразовывается в символ +.

$url = "https://mysite.com/test/?id=23&text=Какой то текст";

echo urlencode($url);

Функция urlencode() кодирует строку. Обратите внимание что все пробелы в тексте были преобразованы в знак +. Для сравнения вы можете попробовать кодировать данную строку с помощью функции urlencode().

$url = "https%3A%2F%2Fmysite.com%2Ftest%2F%3Fid%3D23%26text%3D%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9+%D1%82%D0%BE+%D1%82%D0%B5%D0%BA%D1%81%D1%82";
echo urldecode($url);

Обратная функция urldecode() - декодирует url строку закодированную функцией urlencode().

Вот в принципе и все что я хотел вам рассказать про кодирование и декодирование url строк в php. Для корректной передачи данных через get запросы не забывайте использовать данные функции для формирования url строки. Я к примеру, частенько пользуюсь ими при формировании запросов API. Это повышает вероятность что данные будут корректно переданы через адресную строку и вы получите положительный результат.

На этом данная статья подошла к концу. Если у вас остались вопросы пишите их в комментариях или группе

вк.

Я с вами прощаюсь. Желаю успехов и удачи! Пока.

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

Еще статьи

Автономность web-Сайтов с помощью HTML5

Тег datalist в HTML5

htaccess запретить доступ к директории

Работа с элементом iframe в javaScript.

Мета теги

JavaScript мышь

Скриншоты в python pyautogui

Массив констант в php7

Оператор объединения с null

Комментарии

Проверочный код

В данном разделе пока нет комментариев!

История

    ПОДПИСКА

    • Подпишись и получай информацию о выходе новых статей на почту! Просто введите свою почту, нажмите кнопку подписаться. На почту должно будет прийти сообщение с потверждением подписки. Если сообщение не пришло проверьте раздел спам или попробуйте другую почту. Также по всем техническим проблемам вы можете написать в поддержку

    НОВОСТИ

    • Всем привет! Запустил новый сервис для поиска и бесплатного скачивания, прослушивания аудиокниг. Здесь вы можете найти множество литературы и прослушать ее. Вскоре возобновлю написание статей.