Як я можу перетворити пробіли у рядку %20
?
Ось моя спроба:
$str = "What happens here?";
echo urlencode($str);
Вихід є "What+happens+here%3F"
, тому пробіли не представлені як %20
.
Що я роблю не так?
Відповіді:
rawurlencode
Натомість використовуйте функцію.
Знак плюс - це історичне кодування символу пробілу в параметрах URL-адреси, як зафіксовано в довідці щодо urlencode()
функції.
Ця сама сторінка містить відповідь, яка вам потрібна - використовуйте rawurlencode()
замість цього, щоб отримати кодування, сумісне з RFC 3986 .
Я вважаю, що якщо вам потрібно використовувати %20
варіант, ви можете, можливо, скористатися ним rawurlencode()
.