Всем привет.
Заметил такую штуку, что если я передаю строку через GET
:
?server=Super Server + GF -
Я в php вывожу значение $_GET['server']
, и получаю:
Super Server GF -
Получается, что php сам делает urldecode()
, при выводе $_GET
, и как положено заменяет +
на пробел.
Но вот вопрос, это настройка какая - то, или особенность php? Или это настраивается в Apache?
Просто сейчас, что бы мне передать в GET
знак +
- мне нужно через JS сделать:
encodeURIComponent('Super Server + GF -')// Super%20Server%20%2B%20GF%20-
И только в таком случае, php мне выведет:
Super Server + GF -
Если передать в GET
:
&test=a+a
При выводе мы получим:
echo $_GET['test'];//a a
echo urldecode( $_GET['test'] );//a a
Получается, что php все-таки декодирует строку запроса...
И я вот не понимаю, это браузер декодирует строку и передает её на сервер, или сервер декодирует строку?
Сервер не кодирует GET, POST, PUT, etc...
запросы, мы собираем и в ручную, а после этого браузер формирует тело запроса, автоматически добавляет нужные заголовки и посылает на сервер.
Нам нужно кодировать параметры самим.
В вашем случае когда вы отправляете не кодированную строку вида:
?server=Super Server + GF -
Браузер видит +
и заменяет на пробел, так как все пробелы это +
, а +
-пробел или %20
.
По этому если на сервере, сделать так:
urlencode($_GET['server]);
Мы получим:
Super+Server+++GF+-
А если так:
rawurlencode($_GET['server']);
Мы получим:
Super%20Server%20%20%20GF%20-
А если отправляем так:
encodeURIComponent('Super Server + GF -')
То уже нужно сделать так:
rawurldecode($_GET['server'])
Получаем:
Super Server + GF -
То, что нам было нужно, а вообще советую более детально изучить спецификацию кодирование и декодирование строк.
А так-же почитайте в чем отличие между js encodeURI
и encodeURIComponent
, а так-же в php urldecode
и rawurldecode
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вся суть вопроса в изображенииОбратите внимание на строку 84
Я делаю регистрация в своем андроид приложении,и мне нужно обратиться к php-файлу на хостинге,но я не знаю как узнать url к этому файлу