& в строке запроса

Balkon

Новичок
& в строке запроса

Должен ли php корректно вытаскивать значения из такого GET запроса

index.php?year=2005&language=ru&mode=thanks

т.е. где вместо амперсандов стоит &

У меня на такой запрос и var_dump($_GET) пхп выводит следующее:

PHP:
array(3) {
  ["year"]=>
  string(4) "2005"
  ["amp;language"]=>
  string(2) "fi"
  ["amp;mode"]=>
  string(6) "thanks"
}
т.е. добавляется amp;

а я бы хотел что бы было

year=2005
language=ru
mode=thanks
 

SiMM

Новичок
Что браузер передаёт - то он и показывает - правьте свой HTML, или что там у вас.
 

Balkon

Новичок
Ссылки я формирую след. образом

PHP:
        return "index.php?".implode("&", $str);
где в $str - массив [key=value]

и все ссылки обычно работают нормально.
если без & а просто & - то валидатор на w3.org ругается на знаки амперсанда в ссылках.

Но таким же образом я генерю очередную ссылку и ее подсовываю в Header("Location: ");

и в итоге пхп ведет себя вот так как выше.
 

Balkon

Новичок
Почему тогда обычные ссылки составленные с & работают?
 

phprus

Moderator
Команда форума
Balkon
& amp; нужен для браузера, чтобы он смог составить правильную ссылку. (ну и для соответствия стандарту html). В ссылках передаваемых заголовках Location разделителем парабетров должен быть символ &.
 

Balkon

Новичок
Или всю эту работу делает броузер автоматом?

-~{}~ 14.08.06 14:48:

Все понял. Спасибо.
 

uliss

Новичок
Помотри заголови, отправляемые броузером, когда ты переходишь по ссылке - никаких там & нет! :)
А нужно писать & - для того, чтобы твой документ был XML well-formed.
 
Сверху