PHP & Hash / Fragment Teil der URL

8

Ich versuche einen Weg zu finden, den Hash-Teil einer URL und als PHP-Variable zu speichern. Diese Idee ist ein bisschen verrückt, aber ertragen Sie mit mir ...

Ich möchte das "location" -Fragment von der folgenden URL extrahieren und es als PHP-Variable speichern.

%Vor%

Die Diskussion in diesem Link zeigt jedoch an dass das Fragment einer URL nur über JavaScript erreichbar ist.

Aber wäre es möglich, einen Link zu erstellen, wo das Fragment in der URL dupliziert, von PHP analysiert und dann durch Mod-Rewrite entfernt wird? Also ....

Ursprüngliche URL:

%Vor%

PHP erhält eine Ortsvariable dank des einfachen "Ortes" in der URL

Apache schreibt den Link dann neu zu:

%Vor%

Ich bin neugierig zu wissen, ob es eine elegante Möglichkeit gibt, dieses Problem zu lösen.

    
mikey_w 21.07.2009, 22:06
quelle

5 Antworten

9

Sie müssen Javascript verwenden, um dies zu lesen. Es gibt ein paar verschiedene Optionen - beim Laden der Seite könnten Sie eine XmlHTTPRequest (AJAX-Anfrage) verwenden, um dem Server mitzuteilen, wie die zusätzlichen URL-Parameter lauten. Alternativ können Sie prüfen, ob es zusätzliche Parameter gibt (auch über Javascript), und wenn Sie welche finden, senden Sie sie zurück an eine andere URL, die diese Parameter in die URL selbst codiert hat.

    
pix0r 21.07.2009 22:16
quelle
5

Das Fragment wird niemals an den Server gesendet, gemäß diesem Thread auf dem Server Mod_Rewrite Foren. Also, das könnte unmöglich sein, wenn Sie AJAX verwenden, um die Seite nachträglich zu ändern.

Eine andere Idee wäre, dass Javascript den Hash in einen $ _GET-Parameter verwandelt und dann die Seite aktualisiert.

    
Tyler Carter 21.07.2009 22:14
quelle
0

Sie können Hash-Fragment über AJAX an PHP-Skript senden und eine sofortige Aktualisierung (Neuladen der Seite)

durchführen     
dusoft 21.07.2009 22:14
quelle
0

Sobald Sie die Werte über AJAX an den Server gesendet haben. Sie können die Fragmentwerte in SESSION setzen. Wenn Sie die Seite aktualisieren, können Sie das Fragment abrufen, das in Sitzung festgelegt wurde, und dann den entsprechenden Inhalt anzeigen. Weil wir die Fragmentwerte nicht über PHP_SELF / QUERY_STRING usw. erhalten können. Wir benötigen dies, um die Geschwindigkeit unserer Webseite wie Gmail zu erhöhen.

    
Jerald 08.08.2010 13:00
quelle
-2

Es ist in dem "fragment" -Wert enthalten, der von PHP parse_url zurückgegeben wird.

>

Aus dem PHP-Handbuch:

%Vor%

Wird zurückkehren:

%Vor%     
Jason 26.10.2011 05:43
quelle