PHP & Hash / Fragment-Teil der URL
Ich bin auf der Suche nach einer Möglichkeit zum speichern der hash-Teil einer url und als PHP-variable. Diese Idee ist ein bisschen verrückt, aber mit mir tragen...
Möchte ich extrahieren Sie die "location" - fragment aus die folgende URL auf und speichern es als eine PHP-variable.
http://www.example.com/#location
Jedoch die Diskussion an dieser link zeigt an, dass das fragment eines URL ist nur erreichbar durch JavaScript.
Aber wäre es möglich eine Verknüpfung zu erstellen, wo das fragment dupliziert wird, in der URL durch PHP geparst, und dann entfernt durch mod-rewrite? So....
Original-url:
http://www.example.com/location/#location
PHP bekommt location variable durch die Ebene "Standort" in der URL
Apache dann schreibt den link:
http://www.example.com/#location
Ich bin neugierig zu wissen, ob es einen eleganten Weg um dieses problem zu lösen.
- Sie könnte sich ändern, das fragment in eine $_GET-Wert?
- NÖ, kann man nicht. Siehe meine Antwort
- Hier ist eine Lösung mit javascript ein hidden-input-Feld
stackoverflow.com/questions/940905/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Javascript verwenden, um diese zu Lesen. Es gibt ein paar verschiedene Optionen - beim laden der Seite haben, könnten Sie ein XmlHTTPRequest-Objekt (AJAX-request) an den server, was die zusätzliche URL-Parameter wurden. Alternatley Sie überprüfen könnten, um zu sehen, ob gibt es zusätzliche Parameter (auch per Javascript), und, wenn Sie welche finden post wieder auf eine andere URL mit diesen Parametern kodiert in der URL selbst.
Das Fragment wird niemals an den server gesendet, der entsprechend dieser thread auf die Mod_Rewrite-Foren. Also, das könnte unmöglich sein, wenn Sie AJAX verwenden, um die Seite ändern, die nach der Tat.
Andere Idee wäre es, die Javascript-drehen Sie den hash in einer $_GET-Parameter, und aktualisieren Sie dann die Seite.
könnten Sie schicken hash-fragment über AJAX an PHP-Skript und führen Sie eine sofortige Aktualisierung (reload der Seite)
Einmal Sie haben senden die Werte zum server via AJAX. Sie können den fragment-Werte in der SESSION. Wenn Sie die Seite aktualisieren, können Sie das fragment wurde in der Sitzung und wird dann den entsprechenden Inhalt anzuzeigen. Weil wir nicht bekommen können, Holen Sie sich die fragment-Werte über PHP_SELF /QUERY_STRING und etc. Wir benötigen diese, um erhöhen die Geschwindigkeit unserer web-Seite wie Google Mail.
Ist es, die in der "fragment" - Wert zurückgegeben, von Die PHP-Funktion parse_url.
Aus PHP-manual:
Zurück: