当我将网站移动到子文件夹时,我总是担心路径问题,因为我不知道如何用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专业地处理它; 和
./
之间有什么区别;最后,如果没有正斜杠,..
意味着什么。
谢谢。
答案 0 :(得分:2)
示例中的所有路径都是相对的,这意味着它们基于当前位置。使用/
启动路径意味着它是基于站点根目录的绝对路径。
如果您想要始终100%确定您所引用的内容,请使用路径前方的/
。
答案 1 :(得分:1)
在UNIX系统中,'./dirName'
在当前目录中查找子目录dirName
; .
只是指当前位置。换句话说,./dirName
相当于'dirName'
。您不会在href中使用它:对于相对于当前位置的路径,请不要使用前面的.
。
'../dirName'
在当前目录的父目录中查找子目录dirName
。 ..
指的是父目录。
如果文件路径以正斜杠开头,则表示根目录。 '/dirName'
指的是位于根目录内的子目录dirName
。