Как заменить знак "+" плюс соответствующей кодировкой URL "%2B"?

У меня возникла проблема с заменой знака "+" его строкой с urlencoded "%2B". Как я могу это сделать?

Вот что я пробовал:

Текст Введено в текстовое поле:

plus(+)

Затем я urlencode строку:

$string = urlencode($string);

Теперь строка выглядит следующим образом:

plus%28+%29

Я хочу иметь "+" urlencoded, или когда я urldecode() данные для отображения в браузере, я получаю:

plus( ) 

потому что urldecode() интерпретирует "+" как пространство.

Я попытался использовать php str_replace(), но я все равно получаю "NULL", возвращаемый как значение для "$ new_string":

$new_string = str_replace('+', '%2B', $string);

Любые идеи?

Спасибо заранее!

Ответы

Ответ 1

Это странно. Когда я использую urlencode на plus(+), я получаю plus%28%2B%29. Убедитесь, что вы используете его правильно.

Вы также можете попробовать rawurlencode. Он будет кодировать пробелы как %20 вместо +.