如何从PHP 获取绝对路径、文档根目录、基本 URL

这篇具有很好参考价值的文章主要介绍了如何从PHP 获取绝对路径、文档根目录、基本 URL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

根据您的服务器配置,获取正确的路径信息可能具有挑战性。例如,PHP 并没有直接提供一个变量来返回站点基本 URL。以下是一些代码片段,可以帮助您获取绝对路径、文档根目录和基本 URL。

获取绝对路径

如果您的脚本位于 /path/directory/ 目录中,您可以使用以下代码片段来获取绝对路径:

$base_dir = __DIR__;

这将返回类似于下面的内容(具体路径根据实际服务器而定):

/var/www/path/example.com/httpdocs/path/directory

请注意,结果不包含尾部斜杠。

获取文档根目录

获取文档根目录的最简单、最干净的方法是:

$doc_root = $_SERVER['DOCUMENT_ROOT'];

这将返回类似于下面的内容:

/var/www/path/example.com/httpdocs

请注意,结果不包含尾部斜杠。另外,您还可以使用以下方法:

$doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']);

第一种方式是首选,第二种方式供您参考。

获取当前脚本的基本 URL

以下代码片段将返回当前脚本的基本 URL。假设脚本位于 /path/directory/at/example.com 中。要获取基本 URL,请应用以下代码:

// 基本目录
$base_dir = __DIR__;

// 服务器协议
$protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https';

// 域名
$domain = $_SERVER['SERVER_NAME'];

// 基本 URL
$base_url = preg_replace("!^${doc_root}!", '', $base_dir);

// 服务器端口
$port = $_SERVER['SERVER_PORT'];
$disp_port = ($protocol == 'http' && $port == 80 || $protocol == 'https' && $port == 443) ? '' : ":$port";

// 将所有内容组合在一起,以获得完整的基本 URL
$url = "${protocol}://${domain}${disp_port}${base_url}";

echo $url;

这将输出类似于下面的内容:

http://example.com/path/directory

请注意,结果不包含尾部斜杠。文章来源地址https://www.toymoban.com/news/detail-660781.html

到了这里,关于如何从PHP 获取绝对路径、文档根目录、基本 URL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【详细】双系统 Ubuntu 如何给根目录扩容

    这一步我直接利用windows系统自带的“创建并格式化硬盘分区”功能进行的。 如图,在想要切割出来一部分空间的卷上右键,选择压缩卷选项,之后输入空间大小即可在该卷的后面得到一块未分配空间。 首先解释为什么需要用U盘来启动一个新系统进而调整原Ubuntu系统的磁盘容

    2024年01月25日
    浏览(80)
  • nginx如何找到默认根目录(root html)

    nginx如何找到默认根目录(root html) nginx的出场配置 系统上nginx配置文件在 /etc/nginx/nginx.conf ,服务 index.html 的位置是 /var/lib/nginx/html/index.html 。现在,看看上面的配置,nginx是如何根据配置找到 /var/lib/nginx/html/index.html ? 解答 这就涉及到nginx查找相对路径的机制。nginx会把 --pre

    2024年02月16日
    浏览(47)
  • Visual Studio Code 用 git 获取指定历史版本代码,并且拉取代码到指定根目录的方法

    1、新建文件夹,并用 VS打开该文件夹 2、终端执行  git init 3、找到想拉取项目的SSH地址,并复制该地址 4、把复制的SSH地址关联起来,关键语法 git remote add origin 地址 5、先拉取下来, git pull origin master 6、查看提交日志, git log --pretty=oneline (备注:oneline 意思是把每一个提交

    2024年02月15日
    浏览(39)
  • Centos7根目录扩容方法(添加一块磁盘扩容根目录)

    摘要: 业务服务器扩容磁盘,一般用户都比较喜欢把新增的磁盘容量扩容到原业务上的一个目录上,也就是说扩容业务目录的容量,其次情况下,同一目录下,无法挂载多个,不然会覆盖之前的挂载,所以要以卷组分方式来解决扩容。 目标: 业务服务器新增一块硬盘硬盘,

    2024年02月08日
    浏览(57)
  • Linux 将 /home 目录与 / 根目录磁盘合并

    一般情况下进入 Linux 系统下的 / 目录,会看到如下目录列表。 可以看到其中包含 home 目录, home 目录下将会为每个用户创建一个属于自己的用户目录,也称为用户自己的 “家目录”。更多根目录的信息可查看笔者的这篇博客 《Linux文件系统目录结构详解》。 在安装 Linux 操

    2024年02月08日
    浏览(48)
  • Docker修改默认根目录

    Docker安装后的默认根目录在/var/lib/docker,修改根目录的方法如下: 1、使用docker info查看默认的目录 2、确保停止docker服务 3、修改docker服务启动文件(docker.service ) 4、同步docker根目录数据到新目录 5、重新加载配置并启动 6、查看修改后的docker信息 如果能看到Docker Root Dir: /

    2024年02月13日
    浏览(32)
  • ubuntu20根目录扩容

    ubuntu根目录/ 或者 /home文件夹有时出现空间满了的情况,可以用gparted工具进行空间的重新分配。 首先,如果你是双系统,需要从windows系统下磁盘压缩分配一部分未使用的空间给ubuntu,注意压缩的空间要邻接ubuntu所在盘的位置。 如果仅仅是把/home文件夹的空间分给/ ,则不需要

    2024年01月25日
    浏览(34)
  • centos 下扩容根目录

    大体情况: 在VM虚拟机上安装了移动云的BCLinux镜像,磁盘设定为8G,但是用过一段时间之后根目录下磁盘已满,无法创建文件夹等操作,因此在VM上进行了磁盘扩容,扩容之后需要在系统上自行挂载,使用mount /dev/sda3 /无法挂载到根目录上,查询了各种博客,终于在根目录上扩

    2024年02月10日
    浏览(32)
  • Mac系统进入根目录

    ❤️ 快捷方式就是使用聚焦搜索 电脑按下 command + 空格 键 输入 /usr/bin 即可进入根目录 输入 /usr/local 即可进入安装目录 ❤️ 查看该目录下所有文件 如果您知道自己正在做什么 并需要显示所有根目录 使用 ls -a

    2024年02月12日
    浏览(40)
  • React配置src根目录@

    yarn eject or npm run eject 如果报错了记得提前 git commit 一下 找到 webpack.config.js 文件 在 webpack.config.js 文件中找到 alias 配置 在alias里添加 \\\'@\\\': path.resolve(\\\'src\\\') , 或者 \\\'@\\\': path.join(__dirname,\\\'../src\\\') , 重新 npm start 即可

    2024年01月20日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包