J'essaie de trouver un moyen de sauvegarder la partie Hash d'une URL et de variable PHP. Cette idée est un peu kooky, mais porte avec moi ...
J'aimerais extraire le fragment "Emplacement" de l'URL suivante et enregistrez-la sous forme de variable PHP. P>
http://www.example.com/#location
5 Réponses :
Vous pouvez envoyer un fragment de hasch via AJAX au script PHP et effectuer une actualisation immédiate (rechargement de la page) P>
Le fragment n'est jamais envoyé au serveur, selon ce thread a > sur les forums mod_rewrite. Donc, cela pourrait être impossible à moins que vous n'utilisiez Ajax pour changer la page après le fait. P>
Une autre idée serait d'avoir JavaScript transformer le hachage dans un paramètre $ _GET, puis rafraîchissez la page. P>
Merci pour les réponses! Je sais que le fragment n'est jamais envoyé au serveur. Ce que je propose est un "pseudo fragment" ou "double fragment" comme exemple.com/fragment/ #fragment Le premier fragment serait interprété par PHP, puis supprimé par mod_rewrite, rendant l'URL comme exemple.com/#fragment Peut-être que cette approche n'a aucun sens; Je ne suis pas sûr si ça fait, d'où ma question ...
Si vous souhaitez envoyer la personne à l'exemple.com/#fragment, vous les envoyez à Exemple.com/fragagement, puis PHP pourrait les transmettre à Exemple.com/#Fragement.
Super idée de transférer l'utilisateur à partir de "exemple.com/fragment" à "exemple.com/#fragment". Je vais utiliser un cookie pour enregistrer le fragment, puis transmettre la page à elle-même. Quelque chose comme ça pourrait fonctionner: Exemple: Link: exemple.com/test.php?fragment= Turquie $ fragment = $ _GET ["fragment"]; Si (Isset ($ fragment)) {Setcookie ("Testcookie", "Testcookie", Time () + 3600); Header ("Emplacement: exemple.com/test.php/# etfragment"/ a>);} // fait des choses supplémentaires basées sur le cookie
Vous vous retrouveriez avec 2 entrées dans la pile d'historique :( et pire, le premier fait toujours référence à la seconde afin que votre navigation de votre bouton arrière soit gênante.
Vous devrez utiliser JavaScript pour lire ceci. Il existe quelques options différentes - lors de la charge de la page, vous pouvez utiliser une liste XMLHTTPQUEST (demande AJAX) pour indiquer au serveur quels sont les paramètres d'URL supplémentaires. Alternatley, vous pouvez vérifier si vous y trouverez des paramètres supplémentaires (également via JavaScript), et si vous en trouvez une autre adresse à une autre URL qui contient ces paramètres encodés dans l'URL elle-même. P>
Une fois que vous avez envoyé les valeurs au serveur via AJAX. Vous pouvez définir les valeurs de fragment en session. Lorsque vous actualisez la page, vous pouvez obtenir le fragment défini dans la session et le processus, puis affichez le contenu correspondant. Parce que nous ne pouvons pas obtenir les valeurs de fragment via php_self / query_string et etc. Nous avons besoin de cela pour augmenter la vitesse de notre page Web comme Gmail. p>
Il est contenu dans la valeur "Fragment" renvoyé de fonction PHP Parse_url A >. du manuel PHP: p> retournera: p>
Cela est vrai si le fragment est fourni manuellement à cette fonction, mais le problème par rapport à la question initiale est que la partie de fragment n'est pas envoyée au serveur.
Vous pouvez changer le fragment en une valeur de $ _GET?
Nope, tu ne peux pas. Voir ma réponse
Voici une solution utilisant JavaScript et un champ d'entrée caché Stackoverflow.com/questions/940905/...