получить хэш в URL с php?

кто-то здесь, в SO, сказал мне, что хэш (#) в URL-адресе может быть получен php-функцией parse_url? Это правда?

мой веб-сайт получил много эффектов ajax, и я хочу иметь возможность передавать URL-адрес с хешем в index.php, чтобы он мог отображать информацию, основанную на хэш-значениях.

например. если пользователь нажимает и перемещается на моем веб-сайте, и он нашел то, что хочет поделиться, тогда он может скопировать адрес и отправить его своему другу, и когда этот человек входит, он видит то же самое.

Я попытался использовать javascript для сохранения значений хэша в файлах cookie, но это не работает с firefox и слишком медленным в сафари (сначала отобразится html, поэтому вам нужно обновить страницу во второй раз для отображения правильного содержимого).

любое другое решение приветствуется

EDIT: im очень запутался..если я использую parse_url, я должен сам ввести url в php, чтобы получить хэш? в чем смысл тогда … мой вопрос, может ли мой приятель ввести URL-адрес с # значениями, а php может его обработать? кажется, нет, я прав?

parse_url() может получить хэш из строки url. Обратите внимание на подпись:

 mixed parse_url ( string $url [, int $component = -1 ] ) 

Вы уже знаете строку. Например, из документов:

 <?php $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); ?> 

Выходы

 Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) /path 

Обратите внимание на запись под ключевым «фрагментом».

Хэш в URL-адресе даже не попадает на сервер. Вы не можете получить доступ к нему с любого языка программирования на стороне сервера.

Пример из руководства php :

 <?php $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); ?> 

кто-то здесь, в SO, сказал мне, что хэш (#) в URL-адресе может быть получен php-функцией parse_url? Это правда?

Да:

 parse_url('http://stackoverflow.com/questions/1957030/retrieve-the-hash-in-the-url-with-php/1957040#1957040', PHP_URL_FRAGMENT); // 1957040 

Но вы не можете определить хэш на стороне сервера, не зная полного URL-адреса априори, не уверен, что HTTP_REFERER имеет этот хеш (не думайте).

Как только вы получите # значение с помощью javascript, отправьте его обратно на сервер с помощью ajax или …. url: http://example.in/?paramvalue=PKDVS4G#access_token=463d3d40-bdbb-04f3-ddb2-c35e2bd9ffa8

 <script> alert(window.location.hash); var myhashvalue = window.location.hash; //hash value like : #access_token=463d3d40-bdbb-04f3-ddb2-c35e2bd9ffa8 //ajax call to send myhashvalue to server </script>