我有一个页面,URL为 localhost/index.php?#search.php?more=appale&starting=1由于有一个#号,php无法直接获取数值,所有我在网上找了个js的代码,通过 location.hash 和 split 分离获取井号后面的值,具体代码和注释如下。现在,如何把JS获取的值(apple 和 1),分别转换成 $_GET['more'] 和 $_GET['starting'] ? 谢谢。<script type="text/javascript">
var hash = location.hash; // search.php?more=apple&starting=1
var hashparts = hash.split("?");
var urlhashpart = hashparts[0]; // search.php
var querystringhashpart = hashparts[1]; // more=apple&starting=1
var params = querystringhashpart.split("&");
for (var i in params) {
var param = params[i].split("=");
document.write(param[0] + "<br />" + param[1]+ "<br />" ); // outputs 'more 空格 apple', 'starting 空格 1'
}
</script>
var hash = location.hash; // search.php?more=apple&starting=1
var hashparts = hash.split("?");
var urlhashpart = hashparts[0]; // search.php
var querystringhashpart = hashparts[1]; // more=apple&starting=1
var params = querystringhashpart.split("&");
for (var i in params) {
var param = params[i].split("=");
document.write(param[0] + "<br />" + param[1]+ "<br />" ); // outputs 'more 空格 apple', 'starting 空格 1'
}
</script>
$arr = explode('?',$str);
$arr = explode('&',$arr[1]); //0 => more=apple, 1 => starting = 1
foreach($arr as $v) {
$tmp = explode('=',$v);
echo $tmp[0].'<br />'.$tmp[1].'<br />';
}
里面放上你的js你在家里访问上面这个网址你觉得是csdn.net的php先输出,还是你家里浏览器的js先输出?
var_dump($_REQUEST);
看看有没有你需要的内容显示?
参照: http://tools.ietf.org/html/rfc2396#section-4
PHP无法获取 # 部分的值。
localhost/index.php?#search.php?more=appale&starting=1
,你试试是JS先输出还是PHP先输出?
只不过下面的代码,只能获得search.php?more=appale,后面的&starting=1被舍弃掉了……
<script type="text/javascript">
var parts = location.href.split('#');
if(parts.length > 1)
{
var params = parts[0].split('?');
var = '?';
if(params.length > 1)
{
= '&';
}
location.href = parts[0] + + 'fragment=' + parts[1];
}
</script>
<?php
if(isset($_GET['fragment']))
{
echo $_GET['fragment'];
}
?>