2016-12-14 3 views
0

Request-Pfad: http: // localhost /1/2/# Beispiel/

print_r($_SERVER['REQUEST_URI']); 

Erwartet: /1/2/# Beispiel/

Actual:/1/2/

urldecode verwenden, haben keine Wirkung, weil PHP das Array schafft zu beginnen. Ja, das ist kein orthodoxer Verzeichnisname, aber gibt es eine andere Möglichkeit, den angeforderten URI in PHP zu bestimmen?

+0

Wenn dies ein tatsächlicher Ordner mit dem Namen '# Example' ist, müssten Sie den Hash in den Link zu dieser Seite eingeben, damit die URL'/1/2 /% 23 Beispiel/'wird. Ein URL-Hash (#whatever) wird niemals an PHP gesendet. Es steht dem Kunden in Javascript zur Verfügung. –

+0

Siehe https://tools.ietf.org/html/rfc3986#section-3.5 "... die Fragmentkennung wird nicht in der systemspezifischen Verarbeitung eines URI verwendet; Stattdessen wird der Fragmentbezeichner vor einer Dereferenzierung vom Rest des URIs getrennt , und daher wird die Identifizierungsinformation innerhalb des Fragments selbst nur durch den Benutzeragenten dereferenziert , unabhängig vom URI-Schema Server – Reeno

Antwort

0

Die # Parma wird nicht an den Server gesendet!

+0

Könnten Sie bitte ausarbeiten? – John

+1

Ah, richtig ... Ich habe das vergessen ... PHP ignoriert es. Das habe ich total vergessen. – John

+0

@John Für die Aufzeichnung, PHP "ignoriert es nicht". Es wird vom Browser entfernt und nicht einmal an PHP gesendet. –

Verwandte Themen