我有一些网址,例如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'];
}
?>
答案 0 :(得分:1)
我认为您应该能够使用PHP的内置函数parse_url
http://php.net/manual/en/function.parse-url.php
如果查看返回值,可以将查询参数作为哈希值,#
之后的值是fragment
答案 1 :(得分:1)
在php中你根本看不到请求的片段。
您只能使用javascript
查看答案 2 :(得分:0)
您可以这样做以在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>