应该使用哪个 $_SERVER 变量?

Which $_SERVER variable should be used?

我正在尝试在 PHP 脚本中创建一个 link,它将把我带到地址的主要部分(粗体):http://localhost:8888 /index.php

我可以把确切的 link 放在自己身上,但我想如果我使用 $_SERVER 变量,那么如果我移动文件等,它会允许一定程度的灵活性。

我做了一个 vardump($_SERVER),看起来 $_SERVER['HTTP_ORIGIN'] 包含我需要的数据,但是这似乎也不是一个理想的变量:

这是创建动态 link 的正确方法还是有替代方法?

尝试使用

$address = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];

为了更加灵活,您可以检查是否使用了 https 或 http,以及是否使用了默认 80 或 443 (https) 以外的端口,这也意味着 URL 中是否未定义端口。

function url(){
    $port = null;
    if( ($_SERVER['SERVER_PORT'] != '80') && ($_SERVER['SERVER_PORT'] != '443') ) {
        $port = ':' . $_SERVER['SERVER_PORT'];
    }

    $protocol = empty($_SERVER['HTTPS']) ? 'http://' : 'https://';

    return $protocol . $_SERVER['SERVER_NAME'] . $port;
}