我正在尝试在PHP脚本中创建一个链接,该链接将我带到我的地址的主要部分(粗体): http://localhost:8888 /index.php
我可以把确切的链接放在自己身上,但是如果我使用$ _SERVER变量,那么如果我移动文件等它会允许一定程度的灵活性。
我做了一个vardump($_SERVER)
,$_SERVER['HTTP_ORIGIN']
似乎包含了我需要的数据,但似乎这可能不是一个理想的变量:
How secure is HTTP_ORIGIN?
这是创建动态链接的正确方法还是有替代方法?
答案 0 :(得分:4)
尝试使用
$address = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];
答案 1 :(得分:3)
为了更加灵活,您可以检查是否使用了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;
}