PHP: преобразовать пробелы в строке в% 20? - PullRequest
75 голосов
/ 07 апреля 2011

Как я могу преобразовать пробелы в строке в %20?

Вот моя попытка:

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

Вывод "What+happens+here%3F", поэтому пробелы не представлены как %20.

Что я делаю не так?

Ответы [ 3 ]

177 голосов
/ 07 апреля 2011

Вместо этого используйте функцию rawurlencode.

25 голосов
/ 07 апреля 2011

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

На этой же странице содержится ответ, который вам нужен- вместо этого используйте rawurlencode(), чтобы получить RFC 3986 совместимую кодировку.

19 голосов
/ 07 апреля 2011

Я считаю, что если вам нужно использовать вариант %20, вы, возможно, можете использовать rawurlencode().

...