Say e.g. i have a URI
http://127.0.0.1/somecontroller/someaction#12345 that takes me to the
someAction() action of the someController controller. From there, i am able to retrieve the Request object via
i am also able to retrieve various information regarding the URI from the Request object.
But, how can i retrieve the fragment (i.e. the “12345” part after the # in the e.g.)? Neither
getParams() turn up the fragment part.
This can’t be done with PHP alone.
According to HTTP protocol specification, the fragment part is ignored. However, browsers do support redirects with hash.
If you generate hashes automatically, you may pass the
id as the request parameter:
But this will hot handle the case with the hash only, e.g. when user enters the URL manually.
You cannot use:
because when you call
$_SERVER['REQUEST_URI'], you never get the word after
#. For example your link
www.example.com/about#test, and when you call
$_SERVER['REQUEST_URI'], you just get
Couldn’t you use the php function(s)
explode("#",$_SERVER['REQUEST_URI'])? Maybe I’ve misunderstood the question.