那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?
http://127.0.0.1/myo/newuser.php?mod=search&type=fastone
比如现在我要修改mod=new
要怎么做呢?

解决方案 »

  1.   

    发送了请求就改不鸟了,
    只有这样。
    $mod = $_GET['mod'];
    if( $mod == 'search' ){
    $mod = 'new';
    }如果是字符串 可以<!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    </head>
    <body>
    <script>
    var str = 'http://127.0.0.1/myo/newuser.php?mod=search&type=fastone';
    var re = /(mod=)(.+?)(?=&)/i;
    str = str.replace(re, '$1new');
    alert(str)
    </script>
    </body>
    </html>
      

  2.   

    简单点,可以这么写:
    $url='http://127.0.0.1/myo/newuser.php?mod=search&type=fastone';
    $url_arr=parse_url($url);
    parse_str($url_arr[query],$arr);
    $arr[mod]='new';
    echo 'http://'.$url_arr[host].$url_arr[path].'?'.http_build_query($arr);
      

  3.   

    <?php
    $url = "http://127.0.0.1/myo/newuser.php?mod=search&type=fastone";
    $url_details = parse_url($url);
    $query = $url_details['query'];
    $parts = explode("&", $query);
    foreach ($parts as $part) {
            list($key, $val) = explode("=", $part);
            $params[urldecode($key)] = urldecode($val);
    }
    ///////////////////////////////////////////
    $params['mod'] = 'new';
    $new_query = http_build_query($params);
    echo $url_details['scheme'] . "://" . $url_details['host'] . $url_details['path'] .
            "?" . $new_query;
    ?>
      

  4.   

    的确很强大, 应对数组形式的key很万能啊。