может ли php получить значение из URL после хэша с помощью js href.split? - PullRequest
0 голосов
/ 12 мая 2011

У меня есть несколько URL-адресов, таких как http://www.domainname.com/m1.php?#m2.php?more=apple&starting=1

Как использовать PHP для получения значения $_GET['more'] & $_GET['starting']?

Можно ли использовать js href.split, чтобы получить значение хеш-хеша #?

Обновленный вопрос:

Добавьте код, указанный ниже: Я все еще получаю $_GET['fragment'] = m2.php?more=apple, но теряю &starting=1, Как мне поступить дальше?

<script type="text/javascript">
var parts = location.href.split('#');
if(parts.length > 1)
{
    var params = parts[0].split('?');
    var mark = '?';
    if(params.length > 1)
    {
        mark = '&';
    }
    location.href = parts[0] + mark + 'fragment=' + parts[1];
}
</script>
<?php
if(isset($_GET['fragment']))
{
    echo $_GET['fragment'];
}
?>

Ответы [ 3 ]

1 голос
/ 12 мая 2011

В php вы просто не видите запрошенный фрагмент.

Вы можете увидеть его только с помощью javascript

1 голос
/ 12 мая 2011

Я думаю, вы должны использовать встроенную функцию PHP parse_url http://php.net/manual/en/function.parse-url.php

Если вы посмотрите на возвращаемые значения, вы можете получить параметры запроса в виде хэша, а значение после # будет fragment

0 голосов
/ 28 мая 2011

Вы можете сделать это, чтобы использовать хеш-фрагмент в php.

Требуется перезагрузка страницы, но она работает. Вы можете установить этот тег сценария перед любым другим тегом js, чтобы перезагрузка не задерживалась.

<script type="text/javascript">
if(location.hash.length > 0){
    var hash = location.hash.replace('#','');
    location.href = hash;
    //or
    //location.href = 'index.php?param1=1&hash'+hash;
    //or
    //location.href = '<?=$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'].'&hash='?>'+hash;
}
</script>
...