PHP未设置获取参数?

PHP未设置获取参数?,php,url,get,Php,Url,Get,我使用这个函数来确定页面的当前URL。我想知道是否可以扩展此函数以取消设置预先确定的$\u GET参数 我的所有$\u GET值都存储在一个数组中。因此,我可以使用 function getUrlCurrently() { $pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SE

我使用这个函数来确定页面的当前URL。我想知道是否可以扩展此函数以取消设置预先确定的$\u GET参数

我的所有$\u GET值都存储在一个数组中。因此,我可以使用

 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;
}
使用我建议的逻辑来完成这项任务是否既昂贵又不现实

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

“我的url”中包含GET参数。

不确定您真正想用它做什么,但
$\u GET(和其他超级全局变量)不是只读的:

  • 您可以在其中添加值
  • 您可以跳过值
  • 当然,您可以
    unset()
但是请注意,修改
$\u GET
通常不被认为是一种好的做法:当一个人阅读一些代码时,他希望
$\u GET
中的内容来自URL中的参数,而不是您的代码


例如,您完全可以这样做:

$my_array[0]
unset($my_array['key']);
$url = getUrlCurrently() . '?' . http_build_query($my_array);

不确定您真正想用它做什么,但
$\u GET
(和其他超级全局变量)不是只读的:

  • 您可以在其中添加值
  • 您可以跳过值
  • 当然,您可以
    unset()
但是请注意,修改
$\u GET
通常不被认为是一种好的做法:当一个人阅读一些代码时,他希望
$\u GET
中的内容来自URL中的参数,而不是您的代码


例如,您完全可以这样做:

$my_array[0]
unset($my_array['key']);
$url = getUrlCurrently() . '?' . http_build_query($my_array);

使用
$\u服务器['SCRIPT\u URI']
不是更容易吗?

它返回不带查询参数的完整url。

使用
$\u服务器['SCRIPT\u URI']


它返回不带查询参数的完整url。

要在数组中组合带有GET参数的链接,请尝试:

unset($_GET['my_item']);

请参见

在数组中组合带有GET参数的链接,然后重试:

unset($_GET['my_item']);

请参见

这与$\u GET有关。您可以只使用现有的全局数据$\u服务器或getenv,如下所示:

$my_array[0]
unset($my_array['key']);
$url = getUrlCurrently() . '?' . http_build_query($my_array);
编辑:但我知道你的$GET语句是从哪里来的。您的意思是URI包含一些参数。您可以通过$\u SERVER['REQUEST\u URI']或更好的建议,使用

编辑2:
除此之外,关于问题的一点,您还可以添加一个变通方法来设置类似“重写”的函数,如中所述。

这与$\u GET有关。您可以只使用现有的全局数据$\u服务器或getenv,如下所示:

$my_array[0]
unset($my_array['key']);
$url = getUrlCurrently() . '?' . http_build_query($my_array);
编辑:但我知道你的$GET语句是从哪里来的。您的意思是URI包含一些参数。您可以通过$\u SERVER['REQUEST\u URI']或更好的建议,使用

编辑2:
除此之外,关于问题的一点,您还可以添加一个变通方法来设置类似“重写”的函数,如中所述。

更新您的函数:

function GetCurrentUrl($debug=FALSE) {

    $pageURL = (strtolower($_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"];
    }

    // DEBUG
    if ($debug) {
        $msg = "DEBUG MODE: current URL= ".$pageURL ;
        if (function_exists('debug_msg')) {
            debug_msg($msg , $debug) ;
        }else {
            echo $msg ;
        }

    }

    return $pageURL;
}

更新您的功能:

function GetCurrentUrl($debug=FALSE) {

    $pageURL = (strtolower($_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"];
    }

    // DEBUG
    if ($debug) {
        $msg = "DEBUG MODE: current URL= ".$pageURL ;
        if (function_exists('debug_msg')) {
            debug_msg($msg , $debug) ;
        }else {
            echo $msg ;
        }

    }

    return $pageURL;
}

不确定你的目的是什么,因为你的函数不使用GET参数。我的url中有多个GET参数。这不会使它更清晰。不确定你的目的是什么,因为你的函数不使用GET参数。我的url中有多个GET参数。这不会使它更清晰。谢谢。这就是我的目标。谢谢。这就是我的目标。