Php 对文件的引用,而不考虑文件夹结构和深度

Php 对文件的引用,而不考虑文件夹结构和深度,php,coding-style,menu,Php,Coding Style,Menu,我的研究使我相信它可能被称为绝对URL/相对URL。但是,我不确定。所以这并不是给我一个负号的理由,因为我刚到50岁,我正处在一个陡峭的学习曲线上 在my index.php中 我有一个对csv数组的引用/array/test.csv 然后,我有一个名为菜单的文件夹。在这个文件夹中,我有一个名为menu.PHP的PHP,它还需要引用test.csv。但是,我不能放入/array/test.csv,而是必须放入。/array/test.csv 因此,根据您在文件夹结构中的位置,您可能必须使用/或.

我的研究使我相信它可能被称为绝对URL/相对URL。但是,我不确定。所以这并不是给我一个负号的理由,因为我刚到50岁,我正处在一个陡峭的学习曲线上

在my index.php中

我有一个对csv数组的引用<代码>/array/test.csv

然后,我有一个名为菜单的文件夹。在这个文件夹中,我有一个名为menu.PHP的PHP,它还需要引用test.csv。但是,我不能放入
/array/test.csv
,而是必须放入
。/array/test.csv

因此,根据您在文件夹结构中的位置,您可能必须使用
/或../或.././


有人能指出正确的方法吗?因为我知道如果我不学习正确的方法,我会遇到问题。

我会调用文件的完整路径

$_SERVER['DOCUMENT_ROOT'] . "/array/test.csv"
开头表示web服务器的htdocs文件夹在哪里。然后我们从那里添加路径的其余部分

因此,要将路径存储在变量中,可以执行以下操作

$csvFile = $_SERVER['DOCUMENT_ROOT'] . "/array/test.csv"

亚瑟,没有正确的方法,你是正确的,它是对文件/url/资源的
相对
绝对
引用

没有错误的方法。然而,每种方法都有其优点和缺点:

关键区别点:

  • 相对:可移植性(你可以通过复制和粘贴到其他地方来移动你的应用程序,正如你所说的URL
    。/array/file.ext
    你将始终正确地引用它们
  • 相对:相对移动引用资源的文件意味着您必须更新其引用,如果文件位于
    /file/folder/stuff/file.ext
    中并移动它,则需要更新对
    /array/file.ext
    的引用
  • 绝对:可移植性较差,除非您在URL意义上使用它(包括javascript/图像等)
  • 绝对:移动引用其他文件的文件,意味着您不必更改它们的代码
  • 还有更多
就个人而言,我更喜欢绝对,但实际上这取决于你的推理,两者都没有错


哦,澄清一下(如果你不知道的话)
。/
的意思是“进入一个目录,然后从那里看,它被用在一个相对链接中,在那里你可以概述文件相对于调用它的脚本的位置。

如果你不使用
文档根目录,它取决于你的文件夹结构。”。。“意味着您返回一个文件夹

如果您有此结构:

root_dir
|
folderA
|  |
|  - A.php
|
folderB
   |
   - B.php
如果您位于文件B.php中,并且希望包含A.php,则必须使用以下路径:

inlcude "../folderA/A.php";

所以你回到一个文件夹,然后你在
root\u dir
中,从那里你可以通过
folderA/A.php

访问
A.php
,这样你就可以在任何地方这样做了……它会起作用吗?例如@Arthor,除非你真的需要它,否则这是不必要的,你可以引用相对或绝对的文件您的相对路径的前缀,并使其成为绝对路径。@thenetimp-我将尝试此操作,同时欢迎使用stackoverflow。是的,您可以在任何地方执行此操作。包括,需要,它都链接到类似文件的绝对路径。包括($\u SERVER['DOCUMENT\u ROOT'./Includes/myincludedfile.php'))@Jakub-太好了。我要试一试。我会玩一玩,然后再报告。谢谢你,你不能将URL的第一部分作为变量,所以你以后只需要更改它。@Arthor,如果你将它作为变量,它实际上是绝对的,但是是的,你可以做到,编程允许你这样做,这是不对的或者是错误的。所以最好使用
DOCUMNET\u ROOT
作为更好的编码方式。我会使用DOCUMNET\u ROOT变体,这样你就不必关心相对路径。你解释我的问题的方式很好!!!似乎
DOCUMNET\u ROOT
是一种方式。我同意没有一种正确的方式,但有好的代码或实践tices.因此,这是一个。是的,你可以两者兼而有之,没有什么是对的或错的,但是我使用
文档\u ROOT
可读性更好,而且你可以避免弄乱相对路径,因为如果你有很多包含,或者如果你包含其他包含的文件,这会变得更复杂。我认为这不会影响在e performance中,您可以阅读有关的更多信息以及您可以获得的其他信息。