Как я могу получить переменную хеша в 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; ?>