У меня есть URL, как это http://localhost/project/test/value#value2
, когда я нажимаю эту ссылку, я хочу получить значение #tag на сервере.
Я пытался так на стороне сервера
<?php
function test(param){ ?>
<script>
var className = window.location.hash;
alert(className);
</script>
<?php
} ?>
это предупреждение дает мне имя класса, но после загрузки страницы, если я назначаю это значение переменной php, она не работает. Я использую codeigniter, поэтому я попробовал это current_url()
функция, а также я пытался $_SERVER['REQUEST_URL']
но это не работает в моем случае
Проблема здесь в том, что браузер не отправлял #tag во время запроса, поэтому у вас его нет на стороне сервера в какой-либо функции get url, единственная опция для вас — это обработать этот #tag на стороне js и загрузить необходимую часть html через ajax
Пожалуйста, обратитесь этот
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
Использовать parse_url
функция.
$url = 'http://localhost/project/test/value#value2';
$tokens = parse_url($url);
print_r($tokens);
/*will output
Array
(
[scheme] => http
[host] => localhost
[path] => /project/test/value
[fragment] => value2
)
*/
fragment
бит то, что вы после.
Вы не можете получить хеш-тег из URL в php. Потому что браузер не отправляет #tag во время обработки запроса.