7
votes

PHP ZEND Framework - Comment obtenir un fragment d'URI de demande d'objet de demande?

dire par exemple J'ai un URI http://127.0.0.1/somecontroller/someAction#12345 qui me prend sur la Sompraction () Action du contrôleur Somecontroller. De là, je suis capable de récupérer l'objet de la demande via $ ceci-> getrequest () .

Je suis également capable de récupérer diverses informations concernant l'URI de l'objet de la demande.

Mais, comment puis-je récupérer le fragment (c'est-à-dire la partie "12345" après le # dans l'E.G.)? Ni getrequesturi () ni getparams () augmente la partie de fragment.

Merci!


1 commentaires

Juste hors de curiosité Quelle était votre cas d'utilisation?


4 Réponses :


27
votes

La partie de fragment de l'URL n'est jamais envoyée au serveur via obtenir des demandes d'obtention (ou une requête HTTP à ce sujet), la seule façon de l'obtenir est si vous écrivez un extrait JavaScript qui analyse l'URL et envoie Le fragment retour au serveur via Ajax par exemple.

Cela ne peut pas être fait avec PHP seul.


0 commentaires

3
votes

Selon la spécification du protocole HTTP, la partie de fragment est ignorée. Cependant, les navigateurs soutiennent les redirections avec le hachage.

Si vous générez automatiquement des hayes, vous pouvez passer le paramètre id comme paramètre de demande: http://127.0.0.1/somecontroller/someaction/id/12345/#12345

et ensuite:

$ ceci-> getrequest () -> getparam ('id')

mais ce sera chaud gérer le cas avec le hachage uniquement, par ex. Lorsque l'utilisateur entre manuellement de l'URL.


0 commentaires

0
votes

ne pourriez-vous pas utiliser la fonction PHP exploser ("#", $ _ serveur ['request_uri])? peut-être j'ai mal compris la question.


0 commentaires

1
votes

Vous ne pouvez pas utiliser: xxx

car lorsque vous appelez $ _ serveur ['demande_uri] , vous ne recevez jamais le mot après # . Par exemple, votre lien www.example.com/about#test , et lorsque vous appelez $ _ serveur ['demande_uri] , vous venez d'obtenir www.example. com / environ .


1 commentaires

exploser , selon le manuel PHP lui-même: retourne une matrice de chaînes, chacune d'une sous-chaîne formée en le divisant sur les limites formées par le délimiteur de chaîne.