gpt4 book ai didi

php - 如何获取网站的根网址?

转载 作者:IT王子 更新时间:2023-10-28 23:44:49 25 4
gpt4 key购买 nike

可能是一个微不足道的问题,但我正在寻找一种方法来获取站点 url 的根,例如:http://localhost/some/folder/contains/something/here/or/那里应该返回http://localhost/

我知道有 $_SERVER['DOCUMENT_ROOT'] 但这不是我想要的。

我确信这很容易,但我一直在阅读:This post试图弄清楚我应该使用或调用什么。

想法?

我的另一个问题,与这个问题有关 - 无论答案是什么,都可以在 http://subsite.localhost/some/folder/contains/something/here/之类的网站上工作或/那里 所以我的最终结果是 http://subsite.localhost/

最佳答案

$root = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';

如果您对当前脚本的方案和主机感兴趣。根据 Web 服务器配置(反向代理、重写),“当前”可能不是您在浏览器中看到的内容,而是 PHP 认为它正在处理的内容。

否则,如果您手头有一个 URL,您需要 parse_url() 的根,正如已经建议的那样。例如

$parsedUrl = parse_url('http://localhost/some/folder/containing/something/here/or/there');
$root = $parsedUrl['scheme'] . '://' . $parsedUrl['host'] . '/';

如果您还对路径之前的其他 URL 组件感兴趣(例如凭据),您还可以在完整 URL 上使用 substr() ,并将“路径”的开头作为停止位置,例如

$url = 'http://user:pass@localhost:80/some/folder/containing/something/here/or/there';

$parsedUrl = parse_url($url);
$root = substr($url, 0, strpos($url, $parsedUrl['path'], strlen($parsedUrl['scheme'] . '://'))) . '/';//gives 'http://user:pass@localhost:80/'

注意:strpos() 中的偏移量用于处理 URL 可能已经是根的情况。

关于php - 如何获取网站的根网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com