Пытался напечатать массив $ _SERVER в PHP, но я не могу найти то, что хочу:
http://www.domain.com/#sometaginpage
Я хочу «sometaginpage».
Помогите. Благодаря!
Браузер фактически не посылает ничего, что приходит после хэша (#) на сервер, потому что он разрешен в браузере.
Справедливо уверены, что #hashtags
НЕ отправляются на сервер, но вы можете разработать обходной путь с AJAX:
some-page.html :
<script type="text/javascript"> $(document).ready(function() { $(window).bind('hashchange', function() { var hash = window.location.hash.substring(1); $.get('ajax-hash.php', { tag: hash }, function(data) { $('#tag').html(data); } ); }); }); </script> <div id="tag"></div> <a href="#one">#one</a> | <a href="#two">#two</a> | <a href="#lolwut">#lolwut</a>
ajax-hash.php :
<?php $hash = isset($_GET['tag']) ? $_GET['tag'] : 'none'; echo $_SERVER['HTTP_REFERER'] . '#' . $hash; ?>
Примечание. Это зависит от того, что браузер действительно отправляет HTTP_REFERER
. Поскольку это выполняется через jQuery, это ДОЛЖНО … но никаких обещаний! (Антивирусы / брандмауэры любят снимать с ваших пакетов)
Я не уверен, даст ли это $ _SERVER ['REQUEST_URI'] или нет. s992 может быть прав, он не может отправить это серверу.