<? phpukraine ІНСТРУМЕНТИ
Пошук по платформі

URL encode і decode (urlencode, rawurlencode)

Кодує рядок для URL і розкодовує назад. Дві функції PHP відрізняються одним символом, і це важливо.

У БРАУЗЕРІ ТЕКСТ → ТЕКСТ
РОБОЧА ЗОНА
ЩО РОБИТЬ

Пояснює, чому пробіл став плюсом, а плюс зник

Параметр з кирилицею, пробілом чи амперсандом не можна вставити в URL як є. Інструмент кодує рядок обраним способом і розкодовує закодовані рядки з логів чи вебхуків, показуючи різницю між %20 і + наочно.

ЯК ЦЕ ПРАЦЮЄ В PHP

rawurlencode кодує все, крім літер, цифр і -_.~, у вигляді %XX за RFC 3986. urlencode робить те саме, але пробіл перетворює на +. Зворотні функції rawurldecode і urldecode симетричні: друга перетворює + на пробіл. Для збирання query string є http_build_query, яка кодує значення і склеює пари.

echo rawurlencode('Senior PHP+Laravel, Київ');
// Senior%20PHP%2BLaravel%2C%20%D0%9A%D0%B8%D1%97%D0%B2

echo urlencode('Senior PHP+Laravel, Київ');
// Senior+PHP%2BLaravel%2C+%D0%9A%D0%B8%D1%97%D0%B2

echo http_build_query(['q' => 'php laravel', 'city' => 'Київ']);
// q=php+laravel&city=%D0%9A%D0%B8%D1%97%D0%B2
ПИТАННЯ

Що питають про цей інструмент

rawurlencode дотримується RFC 3986 і кодує пробіл як %20; це правильний вибір для шляху й будь-якої частини URL. urlencode кодує пробіл як + за старим стандартом форм і годиться лише для query string у форматі application/x-www-form-urlencoded. Якщо сумніваєтесь, беріть rawurlencode.

ДАЛІ ПО ТЕМІ