PHP: перетворити пробіли в рядку у% 20?


84

Як я можу перетворити пробіли у рядку %20?

Ось моя спроба:

$str = "What happens here?";
echo urlencode($str);

Вихід є "What+happens+here%3F", тому пробіли не представлені як %20.

Що я роблю не так?

Відповіді:


200

rawurlencodeНатомість використовуйте функцію.


1
Обережно, якщо ви використовуєте це для url (а не його частини запиту), перетворена коса коса призведе до того, що url не буде працювати. Тож якщо вам просто потрібно подбати про пробіли (можливо, для цієї URL-адреси), я пропоную str_replace.
Lukáš Řádek

26

Знак плюс - це історичне кодування символу пробілу в параметрах URL-адреси, як зафіксовано в довідці щодо urlencode()функції.

Ця сама сторінка містить відповідь, яка вам потрібна - використовуйте rawurlencode()замість цього, щоб отримати кодування, сумісне з RFC 3986 .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.