如何使用 PHP 获取基本 URL?
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.
我在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.
试试这个:
<?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
功能调整为在没有警告的情况下执行:
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'];
}