Php для получения значения хеша из URL-адреса

Как я могу получить переменную хеша в php.

У меня есть переменная на странице, подобная этой

catalog.php#album=2song=1 

Как я могу получить значения альбома и песни и поместить их в переменные PHP?

Просто добавив ответ @ Alec.

Существует parse_url() :

Который может вернуть fragment - after the hashmark # . Однако в вашем случае он вернет все значения после хэш-метки:

 Array ( [path] => catalog.php [fragment] => album=2song=1 ) 

Как указано в @NullUserException, если у вас нет URL-адреса заранее, это действительно бессмысленно. Но, тем не менее, я чувствую себя хорошо.

Вы не можете получить это значение с помощью PHP, потому что PHP обрабатывает серверы на стороне сервера, а хэш в URL-адресе только на стороне клиента и никогда не отправляется на сервер. JavaScript может получить хэш, хотя, используя window.location.hash (и необязательно вызывать скрипт PHP, включая эту информацию, или добавлять данные в DOM).

Вы можете использовать AJAX / PHP для этого. Вы можете получить хэш с javaScript и загрузить некоторое содержимое с помощью PHP. Предположим, что мы загружаем основной контент страницы, поэтому наш URL с хешем « http://www.example.com/#main »:

JavaScript в нашей голове:

  function getContentByHashName(hash) { // "main" // some very simplified AJAX (in this example with jQuery) $.ajax({ url: '/ajax/get_content.php?content='+hash, // "main" success: function(content){ $('div#container').html(content); // will put "Welcome to our Main Page" into the <div> with id="container" } }); } var hash=parent.location.hash; // #main hash=hash.substring(1,hash.length); // take out the # getContentByHashName(hash); 

PHP может иметь что-то вроде:

 <?php // very unsafe and silly code $content_hash_name = $_GET['content']; if($content_hash_name == 'main'): echo "Welcome to our Main Page"; endif; ?>