php可以使用js href.split从hash后的url中获取值吗?

发布于 2024-11-07 07:34:38 字数 788 浏览 4 评论 0原文

我有一些网址,例如 http://www.domainname.com/m1.php?#m2.php?more=apple&starting=1

如何使用 PHP 获取值 $ _GET['更多'] & $_GET['开始']

是否可以使用js href.split 获取hash #后面的值?

更新的问题:

添加一些代码如下:我仍然得到 $_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'];
}
?>

I have some urls like http://www.domainname.com/m1.php?#m2.php?more=apple&starting=1

How to use PHP to get the value $_GET['more'] & $_GET['starting']?

Is it possible use js href.split to get the value hehind hash #?

Updated question:

Add some code as below: I still get the $_GET['fragment'] = m2.php?more=apple, but lose the &starting=1, How do I do next?

<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'];
}
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

メ斷腸人バ 2024-11-14 07:34:38

在 php 中你根本看不到所请求的片段。

你只能用javascript看到它

In php you simply can't see the fragment requested.

You can see it only with javascript

木緿 2024-11-14 07:34:38

我认为你应该能够使用 PHP 的内置函数 parse_url http://php.net/manual/en/function.parse-url.php

如果您查看返回值,您可以获取哈希形式的查询参数以及 # 之后的值片段

I think you should be able to use PHP's built in function parse_url http://php.net/manual/en/function.parse-url.php

If you look at the return values, you can get the query params as a hash and the value after the # is the fragment

情域 2024-11-14 07:34:38

您可以这样做以在 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>

You can do this to use the hash fragment in php.

Needs page reload but it works.
You can set this script tag before any other js tag so the reload is not delayed.

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文