Get fragment (value after hash '#') from a URL in php


Question

How can I get the fragment (value after hash '#') from a URL in php?

Say from http://domain.com/site/gallery/1#photo45 I want photo45

1
91
10/16/2015 2:13:30 PM

Accepted Answer

If you want to get the value after the hash mark or anchor as shown in a user's browser: This isn't possible with "standard" HTTP as this value is never sent to the server (hence it won't be available in $_SERVER["REQUEST_URI"] or similar predefined variables). You would need some sort of JavaScript magic on the client side, e.g. to include this value as a POST parameter.

If it's only about parsing a known URL from whatever source, the answer by mck89 is perfectly fine though.

108
5/23/2017 12:10:26 PM

That part is called "fragment" and you can get it in this way:

$url=parse_url("http://domain.com/site/gallery/1#photo45 ");
echo $url["fragment"]; //This variable contains the fragment

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon