PHP & Hash / Fragment de la Partie de l'URL
J'essaie de trouver un moyen de sauver le hachage partie d'une url et comme une variable PHP. Cette idée est un peu dingue, mais garder avec moi...
Je voudrais extraire le "lieu" fragment à partir de l'URL suivante et l'enregistrer dans une variable PHP.
http://www.example.com/#location
Toutefois, la discussion à ce lien indique que le fragment d'une URL est accessible uniquement à l'aide de JavaScript.
Mais serait-il possible de créer un lien où le fragment est dupliquée dans l'URL, analysé par PHP, et ensuite supprimé par mod de réécriture? Donc....
Url d'origine:
http://www.example.com/location/#location
PHP obtient emplacement variable grâce à la simple "emplacement" dans l'URL
Apache puis réécrit le lien:
http://www.example.com/#location
Je suis curieux de savoir si il est une manière élégante de résoudre ce problème.
Non, vous ne pouvez pas. Voir ma Réponse
Voici une solution à l'aide de javascript et d'un champ caché stackoverflow.com/questions/940905/...
OriginalL'auteur mikey_w | 2009-07-21
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'utiliser le Javascript pour lire ceci. Il ya quelques options différentes - lors du chargement de la page, vous pouvez utiliser un XmlHTTPRequest (AJAX demande) pour indiquer au serveur que l'ajout de paramètres d'URL ont été. Alternatley, vous pouvez vérifier pour voir si il y a d'autres paramètres (aussi via Javascript), et si vous en trouvez, après revenir à une autre URL qui a ces paramètres encodés dans l'URL elle-même.
OriginalL'auteur pix0r
Le Fragment n'est jamais envoyé au serveur, selon cette fil sur le Mod_Rewrite forums. Donc, c'est peut-être impossible à moins d'utiliser AJAX pour changer de page après le fait.
Une autre idée serait d'avoir Javascript tournez le hachage dans un $_GET paramater, puis actualisez la page.
Si vous voulez envoyer la personne à example.com/#fragment, vous les envoyer example.com/fragement et puis PHP peut les transmettre à example.com/#fragement.
Excellente idée de renvoyer l'utilisateur à partir de "example.com/fragment" "example.com/#fragment". Je vais utiliser un cookie pour enregistrer le fragment, puis vers la page elle-même. Quelque chose comme cela peut fonctionner: Exemple: lien: example.com/test.php?fragment=turkey $fragment = $_GET['fragment']; if (isset($fragment)) { setcookie("TestCookie", "TestCookie", time()+3600); header("Location: example.com/test.php/#$fragment"); } // faire des trucs basés sur le biscuit
Vous vous retrouvez avec 2 entrées dans l'histoire de la pile 🙁 Et le pire, le premier se réfère toujours à la seconde, de sorte que votre dos bouton de navigation serait gênant.
OriginalL'auteur Tyler Carter
vous pouvez envoyer fragment de hachage via AJAX vers un script PHP et de faire une actualisation immédiate (rechargement de la page)
OriginalL'auteur dusoft
Une fois que vous avez envoyer les valeurs vers le serveur via AJAX. Vous pouvez définir le fragment de valeurs dans la SESSION. Lorsque vous actualisez la page, vous pouvez obtenir le fragment qui a été mis dans la session et ensuite afficher le contenu correspondant. Parce que nous n'arrivons pas à obtenir le fragment de valeurs par le biais de PHP_SELF /QUERY_STRING et etc. Nous avons besoin de cela pour augmenter la vitesse de notre page web comme Gmail.
OriginalL'auteur Jerald
C'est contenue dans le "fragment" de la valeur de retour de PHP la fonction parse_url.
De manuel PHP:
Sera de retour:
OriginalL'auteur Jason