PHP: преобразовать пробелы в строке в ?

#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() .