使用Javascript在php中使用动态值修改当前URL

时间:2017-06-01 06:23:19

标签: javascript php

我尝试获取当前网址,使用动态值修改网址中的几个字符串参数,然后重定向到该修改后的网址。 我已获取'location.href' : http://dev.azima.com/@mt.everest2017@/page-content/about-us/5

的当前网址

我尝试将最后两个参数(字符串)'about-us' and '5'分别替换为$page->slug and $page->id。 我尝试过字符串操作方法,但无法弄清楚问题。

2 个答案:

答案 0 :(得分:0)

如果修复了URL模式,可以借助于explode / implode函数在PHP中实现。像这样:

$url = "http://dev.azima.com/@mt.everest2017@/page-content/about-us/5";
$url_arr = explode("//", $url);
$url_arr[count($url_arr) - 1] = $page->id;
$url_arr[count($url_arr) - 2] = $page->slug;

$url = implode("//", url_arr);
header("location:$url");

希望这有帮助。

答案 1 :(得分:0)

让我写下我对你想做的事情的理解:

  1. 用户将转到网址
  2. 有些代码是用PHP完成的
  3. 用户通过Javascript
  4. 重定向到新网址

    如果没有用户交互,则可以不进行任何其他步骤。

    但是你真的需要了解PHP是一种服务器端语言 Javascript是一种客户端语言。

    您无法在没有任何AJAX调用的情况下将内容从JS传递到PHP。

    <强>解决方案

    基本上,你会这样做

    <?php
    /** YOUR PHP CODE WITH $_GET $_POST RETRIEVALS OR WHATEVER **/
    $javascript = '(function() {
       // your redirection
    })();';
    ?><html>
    <head>
    </head>
    <body>
    Your HTML here
    
    <script>
    <?php echo $javascript; ?>
    </script>
    </body>
    </html>
    

    老实说,我宁愿考虑这种纯PHP的代码,更快更容易:

    <?php
    /** YOUR PHP CODE WITH $_GET $_POST RETRIEVALS OR WHATEVER **/
    if(!empty($redirectIsNeeded)) {
        header('Location: http://foo.bar');
    }
    ?><html>
    <head>
    </head>
    <body>
    Your HTML here
    </body>
    </html>
    

    如果不需要负载并且只想显示&#34;您还可以考虑URL栏中的正确URL,使用history.pushstate。