2015-11-18 2 views
0

У меня есть код http://localhost/project/test/value#value2. когда я ударил этот URL-адрес, я хочу получить значение #tag на сервере. Я попытался, как это на стороне сервераможем ли мы получить значение хэша на serveride php?

<?php 
    function test(param){ ?> 
     <script> 
      var className = window.location.hash; 
      alert(className); 
     </script> 
    <?php 
    } ?> 

это предупреждение дает мне имя класса, но после загрузки страницы, если я присвоить это значение переменной PHP его не работает. Я использую CodeIgniter, так что я попробовал эту current_url() функцию, а также я попытался $_SERVER['REQUEST_URL'], но он не работает в моем случае

+0

попробуйте определить значение внутри 'test' переменной и затем вернуть переменную. – mega6382

+0

Этот вопрос уже обсуждался здесь http://stackoverflow.com/questions/940905/can-i-read-the-hash-portion-of-the-url-on-my-server-side-application-php-ruby – Karan

ответ

0

Пожалуйста, обратитесь this

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
+0

Не работает в моем случае –

0

Используйте функцию 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 бит - это то, что вам нужно.

+0

его не работает, потому что он не получает этот URL. его серверная сторона, поэтому, если я попробую функцию current_url() CI, она не даст мне этот url с хэш-тегом –

+0

, что возвращает 'current_url()'? –

+0

'http: // localhost/project/test/value' –

1

Проблема заключается в том, что браузер не отправил #tag во время запроса, поэтому у вас его нет на стороне сервера в любой функции получения url, только для вас есть процесс, который #tag в js side и загрузка необходимого html часть через ajax

0

Вы не можете получить хэш-тег из url в php. Поскольку браузер не отправляет #tag во время обработки запроса.

Смежные вопросы