首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php获取文件的根目录

问php获取文件的根目录
EN

Stack Overflow用户
提问于 2012-04-15 21:05:33
回答 2查看 9.2K关注 0票数 3

如何获得主文件夹的根目录?例如,我在以下位置运行file:

代码语言:javascript
复制
public_html/admin/user/etc/index.php

并且我想包含来自

代码语言:javascript
复制
public_html/includes/user/etc/function.php

所以我想做这样的事情:

代码语言:javascript
复制
include(get_first_default_folder().'includes/user/etc/function.php');

而不是:

代码语言:javascript
复制
include('../../../includes/user/etc/function.php');
EN

回答 2

Stack Overflow用户

发布于 2012-04-15 22:41:48

我通常都是这样做的。$myDir = dirname(__FILE__); (或者您可以在PHP v5.3+上使用__DIR__ )是特定文件所在的目录名称。您知道这在层次结构中的位置,因此您可以使用$myBaseDir = realpath('../../../'.$mydir)‘轻松获取基数。Realpath扩展了它的规范版本的路径,不包括任何符号链接。拥有完整路径还可以在包含或以其他方式查找文件时提供较小的加速。

我之所以这样做,而不是使用$_SERVER['DOCUMENT_ROOT'],是因为如果我从命令行运行脚本,环境变量可能不会存在-它是由set服务器设置的。

票数 2
EN

Stack Overflow用户

发布于 2012-04-15 21:26:14

我想这有点笨拙,但它对我很有效。在每个文件的开头,我定义了一个变量$root。第一级变量是$root = './' (这不是必须的),第一个子文件夹是$root = '../',第二个子文件夹是$root = '../../',依此类推。$root总是将我带到我的站点的根文件夹。

当我需要提供路径时,我只需执行include("{$root}includes/user/etc/function.php");之类的操作

这帮助我摆脱了“没有这样的索引或文件”的警告,所以我将坚持使用它,直到我找到更好的方法来做同样的事情。

或者,您可以为每个文件夹级别定义一个常量,这样就不必在每个文件的顶部添加$root。(我还没有测试过,所以我不知道下面的语法是否正确。)取而代之的是,你可以这样做:

  • {ROOT}includes/user/etc/function.php");` //根目录级别files
  • {SUBFOLDER_LEVEL_ONE}includes/user/etc/function.php");` //第一个子文件夹级文件

在某处定义了常量之后:

  • define("ROOT","./");
  • define("SUBFOLDER_LEVEL_ONE","../");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10162277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档