如何获得主文件夹的根目录?例如,我在以下位置运行file:
public_html/admin/user/etc/index.php并且我想包含来自
public_html/includes/user/etc/function.php所以我想做这样的事情:
include(get_first_default_folder().'includes/user/etc/function.php');而不是:
include('../../../includes/user/etc/function.php');发布于 2012-04-15 22:41:48
我通常都是这样做的。$myDir = dirname(__FILE__); (或者您可以在PHP v5.3+上使用__DIR__ )是特定文件所在的目录名称。您知道这在层次结构中的位置,因此您可以使用$myBaseDir = realpath('../../../'.$mydir)‘轻松获取基数。Realpath扩展了它的规范版本的路径,不包括任何符号链接。拥有完整路径还可以在包含或以其他方式查找文件时提供较小的加速。
我之所以这样做,而不是使用$_SERVER['DOCUMENT_ROOT'],是因为如果我从命令行运行脚本,环境变量可能不会存在-它是由set服务器设置的。
发布于 2012-04-15 21:26:14
我想这有点笨拙,但它对我很有效。在每个文件的开头,我定义了一个变量$root。第一级变量是$root = './' (这不是必须的),第一个子文件夹是$root = '../',第二个子文件夹是$root = '../../',依此类推。$root总是将我带到我的站点的根文件夹。
当我需要提供路径时,我只需执行include("{$root}includes/user/etc/function.php");之类的操作
这帮助我摆脱了“没有这样的索引或文件”的警告,所以我将坚持使用它,直到我找到更好的方法来做同样的事情。
或者,您可以为每个文件夹级别定义一个常量,这样就不必在每个文件的顶部添加$root。(我还没有测试过,所以我不知道下面的语法是否正确。)取而代之的是,你可以这样做:
在某处定义了常量之后:
https://stackoverflow.com/questions/10162277
复制相似问题