使用./,.. /,...进行路径 - 它们对我的视图文件意味着什么?

时间:2013-03-13 22:05:09

标签: php html

当我将网站移动到子文件夹时,我总是担心路径问题,因为我不知道如何用PHP处理它。

我想通过一个例子来学习这个,因为我可以通过查看示例来轻松学习它。

假设我在此目录中运行了一个网站:httpdocs/development/subfolder/myWebsite/index.php

默认情况下,PHP会运行httpdocs/index.php,因此它是根路径,但我的网站在子文件夹中运行。

在我网站的index.php中,(所以我们在子文件夹中)如何确保我指向正确的文件夹?

<img src="images/1.jpg"> // Does no dot means root path?

<img src="./images/1.jpg"> //Does ./ means which_directory_our_php_page_currently_in/images?

<a href="./"> // Points /subfolder/myWebsite/ or httpdocs/ ?

<a href=".."> //Same as above, but no front slash.

<a href=""> //Same as above

我不想使用PHP来定义或使用PHP来跟踪它,并且每当我移动文件时都要更改它。像:

define('SITE_PATH', './development/subfolder/myWebsite/');

特别是当它进入DIRECTORY_SEPARATOR时,事情变得更加混乱。

我想知道如何用PHP专业地处理它; ./之间有什么区别;最后,如果没有正斜杠,..意味着什么。

谢谢。

2 个答案:

答案 0 :(得分:2)

示例中的所有路径都是相对的,这意味着它们基于当前位置。使用/启动路径意味着它是基于站点根目录的绝对路径。

如果您想要始终100%确定您所引用的内容,请使用路径前方的/

答案 1 :(得分:1)

在UNIX系统中,'./dirName'在当前目录中查找子目录dirName; .只是指当前位置。换句话说,./dirName相当于'dirName'。您不会在href中使用它:对于相对于当前位置的路径,请不要使用前面的.

'../dirName'在当前目录的父目录中查找子目录dirName..指的是父目录。

如果文件路径以正斜杠开头,则表示根目录。 '/dirName'指的是位于根目录内的子目录dirName