0

当我将网站移动到子文件夹时,我总是担心路径问题,因为我不知道如何用 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

我不想定义或 const 来使用 PHP 跟踪它并在我移动文件时更改它。像:

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

尤其是当它涉及时DIRECTORY_SEPARATOR,事情只会变得更加混乱。

我想知道如何专业地用 PHP 处理它;和有什么区别./?最后是什么..意思没有正斜杠。

谢谢你。

4

2 回答 2

2

您示例中的所有路径都是相对的,这意味着它们基于当前位置。以 a 开头的路径/意味着它是基于站点根目录的绝对路径。

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

于 2013-03-13T22:08:16.130 回答
1

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

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

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

于 2013-03-13T22:24:06.753 回答