【问题标题】:What is the difference between a filepath prepended with a `/` and one where it is omitted?以`/`开头的文件路径和省略它的文件路径有什么区别?
【发布时间】:2017-12-21 19:18:36
【问题描述】:

有什么区别:

/../../../my_dir/my_file.php
还有
../../../my_dir/my_file.php

我正在使用 PHP 包含(不能定期包含,我怀疑这是因为我在包含的文件中使用了命名空间),后者不起作用,我在之前随机添加了 /文件路径,现在一切正常。我非常困惑,因为在阅读了该正斜杠的功能后,我的代码似乎不应该工作,因为/ 指的是根目录,因此/../../../ 是根目录的三层?这到底是什么意思?我真的不知道为什么我的代码可以正常工作并且包含该文件。

那么,如果/ 是根目录,并且我要在根目录上向上三层,那么为什么一切正常?它不应该抛出一些错误吗?

另外,根目录可以改变吗?据我了解,在 Windows 中,我现在的根目录是 C: 驱动器,您可以将您的根目录从 C: 更改为项目中的目录吗?

如果您有兴趣查看所有这一切发生的文件,这里有一个要点:https://gist.github.com/doubleOrt/09a2b0b97f632143f89e07f21bb974ad

【问题讨论】:

  • 前导斜线表示转到根文件夹。如果没有它,则应用您所在位置的路径说明
  • 是的,但请参阅我的问题的描述。这是我没有得到的部分,如果我要转到根文件夹(在 Windows 中,我的 C: 驱动器,对吗?),然后我要上升几级,那为什么我的代码可以工作?当我转到根文件夹的父级时,我会在哪里结束?根文件夹的父级是什么?
  • 相对路径和绝对路径。
  • 当然不能从根目录上去。
  • 我很确定,这样的错误会被忽略

标签: php path namespaces filepath


【解决方案1】:

/../../../my_dir/my_file.php

这将根据根目录更改目录。

./../../../my_dir/my_file.php

这将改变目录,相对于它的执行位置

../../../../my_dir/my_file.php

这只是上升到 my_dir/my_file.php

据我了解,在 Windows 中,我现在的根目录是 C: 驱动器,您能否将根目录从 C: 更改为项目中的目录?

不确定,但您不希望这样,因为它与您的实际环境不同。根应始终是根。

【讨论】:

  • @Taurus 好的...您要求区别,不知道您还想要什么?
  • 如果我实际上是在根目录上,为什么我的代码可以工作?请参阅我的问题的描述,我添加了更多内容。
  • @Taurus 接受吧。有些事情根本不值得努力弄清楚。坚持使用./dir/name../dir/name/dir/name,你会没事的。 PHP中有一些奇怪的东西。
猜你喜欢
  • 1970-01-01
  • 2013-04-04
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
相关资源
最近更新 更多