如何使用 PHP 获取基本 URL?

php
2022-08-30 06:43:57

我在Windows Vista上使用XAMPP。在我的发展中,我有.http://127.0.0.1/test_website/

我如何获得PHP?http://127.0.0.1/test_website/

我尝试过这样的东西,但没有一个奏效。

echo dirname(__FILE__)
or
echo basename(__FILE__);
etc.

答案 1

试试这个:

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

详细了解 $_SERVER 预定义变量

如果您计划使用https,则可以使用以下方法:

function url(){
  return sprintf(
    "%s://%s%s",
    isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
    $_SERVER['SERVER_NAME'],
    $_SERVER['REQUEST_URI']
  );
}

echo url();
#=> http://127.0.0.1/foo

根据此答案,请确保正确配置您的Apache,以便您可以安全地依赖。SERVER_NAME

<VirtualHost *>
    ServerName example.com
    UseCanonicalName on
</VirtualHost>

注意:如果您依赖于键(包含用户输入),您仍然需要进行一些清理,删除空格,逗号,回车符等。任何不是域的有效字符。有关示例,请查看 PHP 内置parse_url函数。HTTP_HOST


答案 2

功能调整为在没有警告的情况下执行:

function url(){
    if(isset($_SERVER['HTTPS'])){
        $protocol = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != "off") ? "https" : "http";
    }
    else{
        $protocol = 'http';
    }
    return $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}

推荐