Bekommen fragment (Wert nach hash '#') aus einem URL in php
Wie bekomme ich das fragment (Wert nach hash '#') aus einem URL in php?
Sagen aus http://domain.com/site/gallery/1#photo45
ich will photo45
en.wikipedia.org/wiki/Hash_symbol
Doppelte oder zumindest auf den gleichen Linien wie stackoverflow.com/questions/1957030/..., stackoverflow.com/questions/1162008/... und stackoverflow.com/questions/2181290/...
möglich, Duplikat der Wie man den Wert nach dem hash in "somepage.php#name"?
Doppelte oder zumindest auf den gleichen Linien wie stackoverflow.com/questions/1957030/..., stackoverflow.com/questions/1162008/... und stackoverflow.com/questions/2181290/...
möglich, Duplikat der Wie man den Wert nach dem hash in "somepage.php#name"?
InformationsquelleAutor ilija veselica | 2010-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen, um den Wert nach der Raute-oder Anker wie gezeigt, in den browser eines Benutzers: Dies ist nicht möglich, mit "standard" HTTP wie dieser Wert wird niemals an den server gesendet (daher ist es nicht verfügbar, in
$_SERVER["REQUEST_URI"]
oder ähnliche vordefinierte Variablen). Sie müsste irgendeine Art von JavaScript-Magie auf der client-Seite, z.B. um diesen Wert als POST-parameter.Wenn es nur über die Analyse einer bekannten URL, von welcher Quelle auch immer, die Antwort von mck89 ist völlig in Ordnung, obwohl.
alert(window.location.hash);
nur eine Anmerkung:
window.location.hash
bekommt man das gesamte fragment INKLUSIVE der#
[hash] Zeichen... und es ist, natürlich, in JavaScript 🙂BTW: JavaScript-Magie 😀 😀 😀 😀 😀 ...
var forms = document.getElementsByTagName('form'); for(var i=0; i<forms.length;i++) forms[i].addEventListener('submit',function(){ var hidden = document.createElement("input"); hidden.setAttribute('type','hidden'); hidden.setAttribute('name','fragment'); hidden.setAttribute('value',window.location.hash); this.appendChild(hidden); });
...je nach form der "Methode" erhalten Sie den hash durch$_POST['fragment']
oder$_GET['fragment']
.... MAGIC!der Wert nach dem hashmark bekommen kann von der server-Seite. Ich zeige eine Lösung unten.
InformationsquelleAutor sfussenegger
Dass Teil heißt "fragment", und Sie können es auf diese Weise:
dies funktioniert mit einer url gespeichert in einem string nicht die aktuelle url aus der Adressleiste des Browsers
Das ist wahr, aber nicht die richtige Antwort für die ursprüngliche Frage. Der Fragesteller hat nicht die volle URL-Zeichenfolge.
Der Fragesteller hat nicht specificallt sagen, er hatte nicht die URL, um ehrlich zu sein, oder musste er das fragment aus der URL, die aktuell angezeigt wird in der Adressleiste des Browsers. Er fragte Sie, wie zu analysieren, die fragement aus ein - URL, so es sei denn, er editiert seine Frage, diese Antwort sollte fein genug.
Eigentlich können Sie das fragment in einer Zeile:
$fragment = parse_url("http://example.com/site/gallery/1#photo45", PHP_URL_FRAGMENT);
InformationsquelleAutor mck89
A) schon die url mit #hash in PHP? Einfach! Nur analysieren Sie es aus !
Oder in "alte" PHP müssen Sie vor speichern der explodierten auf das array:
B) Sie wollen zu bekommen ein #hash durch das senden eines Formulars in PHP?
=> JavaScript-MAGIE! (Pre-process-form)
Je nach
form
'smethod
- Attribut erhalten Sie diesen hash in PHP:$_GET['fragment']
oder$_POST['fragment']
Möglich zurück: 1.
""
[empty string] (no hash) 2. ganze hash-EINSCHLIEßLICH der#
[hash] " - Zeichen (da haben wir diewindow.location.hash
in JavaScript, das funktioniert einfach so 🙂 )C) Sie wollen den #hash in PHP NUR aus der angeforderten URL?
das KANNST DU NICHT !
...(nicht unter Berücksichtigung der regulären HTTP-requests)...
...Hoffe, das hat geholfen 🙂
InformationsquelleAutor jave.web
Ich habe die Suche nach einer Abhilfe für dieses für wenig - und das einzige, was ich gefunden habe, ist die Verwendung von URL-umschreiben zu Lesen, die "Anker". Ich fand in den apache-docs hier http://httpd.apache.org/docs/2.2/rewrite/advanced.html die folgenden...
Kann es noch andere Vorbehalte, und was nicht ... aber ich denke, dass zumindest etwas mit den # auf dem server möglich ist.
InformationsquelleAutor Bronson
Können Sie nicht den text nach dem Raute. Es ist nicht an den server gesendet in einer Anfrage.
InformationsquelleAutor Ignacio Vazquez-Abrams
Ich fand diesen trick, wenn u darauf bestehen wollen, dass der Wert mit php..
teilen Sie die Anker (#) Wert und bekommen es mit javascript, dann speichern als cookie, danach erhalten Sie den cookie-Wert mit php~
http://www.stoimen.com/blog/2009/04/15/read-the-anchor-part-of-the-url-with-php/
InformationsquelleAutor jihchuan
Müssen Sie die url analysiert erstmal, also es geht so:
Wenn Sie brauchen, um eine Analyse der tatsächlichen url der aktuellen browser, müssen Sie die Anfrage an den server aufrufen.
$_SERVER['REQUEST_URI']
nicht sind die #fragmentInformationsquelleAutor JJ Labajo
Könnte man einen string ersetzen auf der client-Seite die server-Seite. Nicht eine besonders robuste Lösung, aber wenn Sie wan ' T eine schnelle Lösung, wie Sie mir, es wird ausreichen, denke ich.
Client:
Server:
InformationsquelleAutor Christopher Grigg
Können Sie es tun, indem eine Kombination von javascript und php:
Und von der anderen Seite;
Anschließend auf Formular Absenden erhalten Sie den Wert über $_POST['hash'] (set-form)
InformationsquelleAutor Boris Javier Barrera
Bekommen die Daten nach der hashmark in einem query-string ist einfach. Hier ist ein Beispiel verwendet, wenn ein client Zugriff auf ein Glossar von Begriffen aus einem Buch. Es trägt den Namen Anker geliefert (#tesla), und liefert dem client auf Begriff und unterstreicht den Begriff und seine Beschreibung in blau, so dass seine leicht zu sehen.
A. Einrichtung Ihres strings mit einer div-id, also den Namen Anker geht, wo sein soll, und das javascript den text ändern können Farben
B. Verwenden Sie Javascript, um die schwere Arbeit, auf der server-Seite eingefügt, die Sie in Ihrem PHP-Seite, oder wo auch immer..
C. ich bin dem Start der java-Funktion automatisch, wenn die Seite geladen wird.
D. Holen den Anker (#tesla) aus der url von dem server empfangen
E. schneiden Sie die Raute aus der es
F., die ich brauche zu markieren, der Begriff und die Beschreibung, damit ich eine neue erstellen var
G. Jetzt kann ich manipulieren die text-Farbe für die Bezeichnung und Beschreibung
H. Das funktioniert. Kunde klickt den link auf der client-Seite (xyz.com#tesla) und geht rechts auf den Begriff. der Begriff und die Beschreibung sind in blau hervorgehoben, indem javascript für die schnelle Lesen .. alle anderen Einträge Links in schwarz..
mit der client-Seite-setup korrekt ist, dann wird der server-Seite ist einfach mit PHP.
InformationsquelleAutor JamesAD-0