#php #string #urlencode
#php #строка #urlencode
Вопрос:
Как я могу преобразовать пробелы в строке в
?
Вот моя попытка:
$str = "What happens here?";
echo urlencode($str);
Вывод "What happens here?"
, поэтому пробелы не представлены как
.
Что я делаю не так?
Ответ №1:
Вместо этого используйте rawurlencode
функцию.
Комментарии:
1. Будьте осторожны, если вы используете это для URL (а не для его части запроса), преобразованный slashed приведет к тому, что URL не будет работать. Итак, если вам просто нужно позаботиться о пробелах (возможно, для этого URL), я предлагаю str_replace .
Ответ №2:
Знак плюс — это историческая кодировка символа пробела в параметрах URL, как описано в справке к urlencode()
функции.
На этой же странице содержится нужный вам ответ — используйте rawurlencode()
вместо этого, чтобы получить кодировку, совместимую с RFC 3986.
Ответ №3:
Я полагаю, что, если вам нужно использовать
вариант, вы могли бы, возможно, использовать rawurlencode()
.