2016-12-14 3 views
0

Путь запроса: HTTP: // локальный/1/2/# Пример/

print_r($_SERVER['REQUEST_URI']); 

Ожидаемое: /1/2/# Пример/

Фактический:/1/2/

Использование urldecode не имеет никакого эффекта, потому что PHP создает массив с самого начала. Да, это не ортодоксальное имя каталога, хотя есть ли другой способ определить запрошенный URI в PHP?

+0

Если это фактическая папка с именем '# Example', вам нужно будет указать urlencode хеш в ссылке на эту страницу, чтобы url стал'/1/2 /% 23 Example/'. Хеш URL (#whatever) никогда не отправляется на PHP. Он доступен клиентской стороне в javascript. –

+0

См. Https://tools.ietf.org/html/rfc3986#section-3.5 «... идентификатор фрагмента не используется в обработке для обработки URI; вместо этого идентификатор фрагмента разделяется от остальной части URI до разыменования, и поэтому идентификационная информация внутри самого фрагмента разыменовывается исключительно пользовательским агентом, независимо от схемы URI. «Это никогда не отправляется на server – Reeno

ответ

0

# Парма не отправляется на сервер!

+0

Не могли бы вы рассказать? – John

+1

А, ладно ... Я забыл об этом ... PHP игнорирует это. Я полностью забыл об этом. – John

+0

@John Для записи PHP не «игнорирует». Он удаляется браузером и даже не отправляется на PHP. –

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