PHP GET + знаки?

1

Поэтому у меня есть следующий PHP-код:

echo $_GET["r"];

Что действительно просто..

Но когда я запрашиваю PHP файл следующим образом: ....php?r=123+123, он выплевывает "123 123", а не "123 + 123" со знаком "плюс". Почему это происходит и как я могу это исправить?

Я пытался:

echo urlencode($_GET["r"]);

Что работает, НО, это был действительно простой пример, если бы я должен был установить это переменной:

$r = urlencode($_GET["r"]);

Переменная $r будет установлена равной 123%2B123 а не 123+123, я хочу, чтобы переменная $r была установлена с помощью знака real plus, а не% 2B?

  • 2
    URL кодировать / декодировать? php.net/manual/en/function.urlencode.php
  • 0
    @Maximus2012 Maximus2012 sry, позвольте мне отредактировать ..
Показать ещё 3 комментария
Теги:
get

3 ответа

0

Правильно, что URL php? R = 123 + 123 декодируется как "123 123", разделенные пробелами, а не как знаки плюс. Чтобы он был правильно декодирован, сделайте его закодированным как php? R = 123% 2B123. Даже если вы написали, что не желаете этого, рассмотрите это правильное поведение.

Символы пробела кодируются как "+" в парах ключ-значение application/x-www-form-urlencoded.

RFC-1866 (спецификация HTML 2.0), пункт 8.2.1. в подпункте 1 говорится: "Имена полей и значения полей формы экранированы: символы пробела заменены на" + ", а затем зарезервированные символы экранируются").

Ниже приведен пример такой строки в URL-адресе, где RFC-1866 позволяет использовать пробелы в виде плюсов: " http://example.com/over/there?name=foo+bar ". Итак, после "?" Пробелы заменяются на плюсы. Этот способ кодирования данных формы также приведен в более поздних спецификациях HTML, например, искать соответствующие абзацы о приложении /x-www-form-urlencoded в спецификации HTML 4.01 и т.д.

Как о urlencode и rawurlencode, пожалуйста, найдите дополнительную информацию по адресу urlencode vs rawurlencode?

0

Итак, я нашел его, вместо urlencode, я просто использовал RAWurlencode!

0

Знак "Плюс" является символом reseverd в URL-адресах. Когда вы используете его напрямую, вызывая скрипт php, это приведет к пробелу.

Когда вам нужно отправить знак "плюс", в комментариях уже нет способа кодирования URL-адреса, как это предлагается в комментариях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню