Когда я вывожу $_SERVER['REQUEST_URI'];
на:
http://localhost/tools/?tool=cs&sub=1
я получаю:
/tools/?tool=cs⊂=1
Есть ли другое решение, чтобы получить /tools/?tool=cs&sub=1
помимо использования &
вместо &
?
Когда я вывожу $_SERVER['REQUEST_URI'];
на:
http://localhost/tools/?tool=cs&sub=1
я получаю:
/tools/?tool=cs⊂=1
Есть ли другое решение, чтобы получить /tools/?tool=cs&sub=1
помимо использования &
вместо &
?
Это потому, что вы эхом отдаете его браузеру. &sub
интерпретируется как объект HTML (⊂).
Если вы echo htmlentities($_SERVER['REQUEST_URI']);
, вы получите то, что ожидаете.
Вы должны использовать правильную кодировку для среды, в которой вы находитесь - в HTML, что означает использование &
.
Если вы работаете в UTF-8, я бы рекомендовал вам использовать htmlentities ($ _ SERVER ['REQUEST_URI'], ENT_QUOTES, "UTF-8"). – Alex
Как вы выводите это значение? Если вы выгружаете его в браузер, уверены ли вы, что он не пытается «декодировать» встроенные амперсанды?
Попробуйте файл с только
<?php phpinfo();
и посмотреть, чтобы увидеть, что значение отображается как (в нижней части)
попробовать это
echo urldecode($_SERVER['REQUEST_URI']);
Использование '&' вместо ' & 'is * * решение. – Gumbo