无论文件夹结构和深度如何,都可以引用文件

时间:2012-02-03 13:18:25

标签: php coding-style menu

我的研究让我相信可能被称为绝对网址/相对网址。但请,我不确定。因此,当我刚刚达到50并且我处于STEEP学习曲线时,这不是给我一个减号的理由。

在我的index.php中

我有一个csv数组的引用。 /array/test.csv

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

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

有人可以指出正确的方法,因为我知道如果我没有正确的方法,我会遇到问题。

3 个答案:

答案 0 :(得分:4)

我会调用文件的完整路径。

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

开头说明了Web服务器的htdocs文件夹。然后我们从那里添加其余的路径。

所以要将路径存储在你可能做的变量中。

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

答案 1 :(得分:1)

Arthor,没有正确的方法,你是正确的relative vs absolute对文件/网址/资源的引用。

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

关键差异点:

  • 亲戚:可移植性(您可以通过复制和粘贴方式移动您的应用,因为您调用URL ../array/file.ext,您将始终正确引用它们。
  • relative:移动引用资源的文件相对意味着您必须更新其引用,如果文件位于/file/folder/stuff/file.ext并且您移动它,则需要更新引用到你的/array/file.ext然后。
  • 绝对:不太便携,除非您在网络意义上使用它(包括javascript / images等)
  • 绝对:移动引用其他文件的文件,意味着您无需更改其代码。
  • 以及更多...

就个人而言,我更喜欢绝对,但实际上这取决于你的推理,这两者都不是错误的。

哦,并澄清(如果你不知道)../只是意味着“沿着一个目录,然后从那里看,它用在一个相对链接,你在那里概述文件的位置< em> relative 到你正在调用它的脚本。

答案 2 :(得分:1)

如果您不使用DOCUMENT_ROOT,则视您的文件夹结构而定。 “..”表示您返回一个文件夹。

如果你有这个结构:

root_dir
|
folderA
|  |
|  - A.php
|
folderB
   |
   - B.php

如果您在文件B.php中并且想要包含A.php,则必须使用此路径:

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

所以你回到一个文件夹,然后你就在root_dir,你可以通过A.php访问folderA/A.php