从php中的url跳过特定的获取值

时间:2013-08-05 09:09:38

标签: php

$url="http://services.php?service_cat=14;&mess_pop=Service_cart";

$url="http://index.php?mess_pop=Thank_you";

来自这些网址,我想要一个没有$_GET['mess_pop']的新网址。

4 个答案:

答案 0 :(得分:0)

您可以遍历所有$_GET个参数,将它们添加到新数组中,然后跳过该消息。

$new_get = array();

foreach($_GET as $key => $value)
{
   if($key != 'mess_pop')
   {
       $new_get[$key] => $value;
   }
}

要生成新网址:

$url_query = "?";
foreach($new_get as $key => $value)
{
    $url_query .= urlencode($key) .'='. urlencode($value) .'&';
}

// To remove last '&'
$url_query = trim($url_query, '&');

答案 1 :(得分:0)

您可以尝试这样的事情

$out = array();
parse_str($url, $out);
unset($out['mess_pop']);
$newURL = 'http://index.php?' . http_build_query($out);

答案 2 :(得分:0)

  1. 使用parse_url获取网址的不同部分
  2. 将网址的“查询”部分转换为包含parse_str的数组。
  3. 取消设置您不想要的数组中的值。
  4. 使用http_build_query
  5. 将数组转换回查询字符串值
  6. 重建从步骤1返回的网址部分
  7. $url = parse_url($url);
    parse_str($url['query'], $qs);
    unset($qs['mess_pop']);
    $url['query'] = http_build_query($qs);
    $url = $url['scheme'] . '://' . $url['host'] . $url['path'] . '?' . $url['query'];
    

答案 3 :(得分:0)

试试这段代码:

$parse_url=parse_url($url);
parse_str($parse_url['query'],$parse_str);
unset($parse_str['mess_pop']);
$new_url=http_build_query($parse_str);