Амперсанд не загружается в строку запроса - PHP

Я передаю простую строку запроса:

index.php?a=orange&apple

Получение ценности с помощью:

$_GET['a'];

он показывает только значение orange. я пытался

$a = urlencode($_GET['a']);
$rs = urldecode($a);
echo $rs; // orange;

но не работал. Нашел аналогичный вопрос здесь stackoverflow, но кажется бесполезным. Как получить полное значение orange&apple?


person RanaHaroon    schedule 08.07.2017    source источник
comment
Кроме кодирования амперсанда?   -  person Ignacio Vazquez-Abrams    schedule 08.07.2017
comment
URL должен быть: index.php?a=orange%26apple   -  person apokryfos    schedule 08.07.2017
comment
он показывает только первое значение, которое предшествует &, например orange, без кодирования.   -  person RanaHaroon    schedule 08.07.2017
comment
это может быть вам полезно: stackoverflow.com/questions/16622504/escaping -амперсанд в URL   -  person Abdul Rahman A Samad    schedule 08.07.2017


Ответы (3)


Ваша строка запроса должна кодировать амперсанд (&) как процентное кодирование как% 26. Ваш URL будет выглядеть так:

index.php?a=orange%26apple
person Gyan    schedule 08.07.2017

Это потому, что & делает apple другим значением в запросе GET.

Как это -

/test/demo_form.php?name1=value1&name2=value2

Поэтому используйте '%26' (кодирующий компонент URI) вместо & вот так:

index.php?a=orange%26apple

И получить значение с помощью $_GET['a'];. Это должно работать.

person pro_cheats    schedule 08.07.2017

Напишите это так:

index.php?a=orange&b=apple

// Values

$_GET['a'];
$_GET['b'];
person Evhz    schedule 08.07.2017