2

I'm trying to extract the last segment of this URL: http://test.com/blog/#segmentIwant (the #segmentIwant is the string I want). The hash tag is generated from a link within the website. Any help is much appreciated!

Shapada
  • 89
  • 1
  • 3
  • 11

2 Answers2

5

PHP cannot read the hash, the server doesnt even recieve it at all!

Zevi Sternlicht
  • 5,399
  • 19
  • 31
1

Well while you load a page with # tag, php does not know it as # tags on url are treated by basically javascript and are not sent to server. But with a simple AJAX request you can send the value to server on loading the page and get the response through that AJAX response.

To grab the url with Javascript:

var url = document.URL;

And try basename() function to get the last part of the sent url with PHP code.

 echo basename( "http://test.com/blog/#segmentIwant" );

Or a simple function in javascript to do it:

var url = document.URL;
hashed_string = url.split("#");
alert(hashed_string[1]);
Fallen
  • 4,435
  • 2
  • 26
  • 46
  • 1
    Please do a favor while voting -1, post a comment too to help the poster avoid the reason of -1 next time. – Fallen Jul 10 '13 at 18:43
  • 1
    Wasnt me who downvoted but I presume that it is because PHP cannot read the HASH at all! – Zevi Sternlicht Jul 10 '13 at 18:51
  • @InGodITrust: yes, I know. but my solution was based on a string. And we can still pass the url to a php script via ajax if we want. Technically there is nothing wrong, I believe. Please correct me if I'm wrong. Thanks :) – Fallen Jul 10 '13 at 18:53
  • AJAX wouldnt help you, because the receieving PHP script still wouldnt know about the HASH unless you put in a `$_GET` variable – Zevi Sternlicht Jul 10 '13 at 18:56
  • @InGodITrust sorry I think you didn't get me. I'd send the url I grabbed with JS with `$_GET` or `$_POST` of course. Otherwise why I'll create an ajax request, I wonder :) – Fallen Jul 10 '13 at 18:57
  • That'll work fine, take a +1 for that. Have a nice evening! – Zevi Sternlicht Jul 10 '13 at 19:00