2009-10-21 7 views
2

Когда я вывожу $_SERVER['REQUEST_URI']; на:

http://localhost/tools/?tool=cs&sub=1 

я получаю:

/tools/?tool=cs⊂=1 

Есть ли другое решение, чтобы получить /tools/?tool=cs&sub=1 помимо использования & вместо &?

+0

Использование '&' вместо ' & 'is * * решение. – Gumbo

ответ

4

Это потому, что вы эхом отдаете его браузеру. &sub интерпретируется как объект HTML (⊂).

Если вы echo htmlentities($_SERVER['REQUEST_URI']);, вы получите то, что ожидаете.

Вы должны использовать правильную кодировку для среды, в которой вы находитесь - в HTML, что означает использование &.

+0

Если вы работаете в UTF-8, я бы рекомендовал вам использовать htmlentities ($ _ SERVER ['REQUEST_URI'], ENT_QUOTES, "UTF-8"). – Alex

0

Как вы выводите это значение? Если вы выгружаете его в браузер, уверены ли вы, что он не пытается «декодировать» встроенные амперсанды?

Попробуйте файл с только

<?php phpinfo(); 

и посмотреть, чтобы увидеть, что значение отображается как (в нижней части)

Смежные вопросы