PHP取消设置获取参数? [英] PHP unset get parameter?

查看:151
本文介绍了PHP取消设置获取参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  function getUrlCurrently(){
$ pageURL =(@ $ _ SERVER [HTTPS] ==on)? https://:http://; ($ _SERVER [SERVER_PORT]!=80){
$ pageURL。= $ _SERVER [SERVER_NAME]。:。$ _ SERVER [SERVER_PORT ] $ _ SERVER [ REQUEST_URI]。
} else {
$ pageURL。= $ _SERVER [SERVER_NAME]。$ _ SERVER [REQUEST_URI];
}
返回$ pageURL;
}

我使用此函数来确定页面的当前URL。我想知道是否可以扩展此函数以取消预设的$ _GET参数。



我所有的$ _GET值都存储在一个数组中。所以我可以通过使用

  $ my_array [0] 

使用我建议的逻辑来完成这项任务是否昂贵并且不现实?

编辑:我只想打印URL以将其用作链接。

我的网址有GET参数。

解决方案

更新您的功能:

  function getUrlCurrently($ filter = array()){
$ pageURL = isset($ _ SERVER [HTTPS])& &安培; $ _SERVER [HTTPS] ==on? https://:http://;

$ pageURL。= $ _SERVER [SERVER_NAME];

if($ _SERVER [SERVER_PORT]!=80){
$ pageURL。=:。$ _ SERVER [SERVER_PORT];
}

$ pageURL。= $ _SERVER [REQUEST_URI];


if(strlen($ _ SERVER [QUERY_STRING])> 0){
$ pageURL = rtrim(substr($ pageURL,0,-strlen($ _ SERVER [请求参数])), '?');
}

$ query = $ _GET;
foreach($ filter as $ key){
unset($ query [$ key]);
}

if(sizeof($ query)> 0){
$ pageURL。='?'。 http_build_query($查询);
}

return $ pageURL;
}

//给出的url为
echo getUrlCurrently();

//将从查询中删除'foo'和'bar'(如果存在)
echo getUrlCurrently(array('foo','bar'));


 function getUrlCurrently() {
    $pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";

if ($_SERVER["SERVER_PORT"] != "80")  {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}  else  {
   $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}

I'm using this function to determine the current URL of the page. I want to know if it is possible to extend this function to unset a pre-determined $_GET parameter.

All of my $_GET values are stored in an array. So I can access the specific values by using

$my_array[0]

Is it expensive and not realistic to use my suggested logic to accomplish this task?

EDIT: I only want to print the URL to use it as a link.
My url has GET parameters in it.

解决方案

Update to your function:

function getUrlCurrently($filter = array()) {
    $pageURL = isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" ? "https://" : "http://";

    $pageURL .= $_SERVER["SERVER_NAME"];

    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= ":".$_SERVER["SERVER_PORT"];
    }

    $pageURL .= $_SERVER["REQUEST_URI"];


    if (strlen($_SERVER["QUERY_STRING"]) > 0) {
        $pageURL = rtrim(substr($pageURL, 0, -strlen($_SERVER["QUERY_STRING"])), '?');
    }

    $query = $_GET;
    foreach ($filter as $key) {
        unset($query[$key]);
    }

    if (sizeof($query) > 0) {
        $pageURL .= '?' . http_build_query($query);
    }

    return $pageURL;
}

// gives the url as it is
echo getUrlCurrently();

// will remove 'foo' and 'bar' from the query if existent
echo getUrlCurrently(array('foo', 'bar'));

这篇关于PHP取消设置获取参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆