使用相对路径时的不同行为

时间:2016-11-03 22:00:54

标签: php

正如我到目前为止所学到的,使用./引用当前文件夹,而../引用当前文件夹的一级,并使用/引用根目录。 因此,当在所有三个条件中添加图像源属性内的相对路径时,它可以正常工作,但在尝试使用Include的三种方式时,.//都引用当前文件夹。 有什么误会吗?因为我很困惑我使用的代码:

<?php

echo '<strong>This is the child using ./ </strong><br><br><img src="./image.jpg"><br><br>';
echo '<strong>This is the parent using ../ </strong><br><br><img src="../image.png"><br><br>';
echo '<strong>This is the root using / <br><br><img src="/image.png"></strong><br>';
include('./file.php');
include('../file.php');
include('/file.php');

&GT;

1 个答案:

答案 0 :(得分:0)

你可以调整Php环境,这是一个例子:

<?php    
chroot(__DIR__);
include '/tmp/foo.txt';

而不是从系统根/tmp/foo.txt中包含绝对路径/。根目录更改为当前目录,并引用其中的文件夹tmp

上面的示例将作为以root身份运行的CLI脚本运行。但是可能有其他方法来chroot Php环境。

以正斜杠开头的资产的公共引用是相对于文档根目录的。假设我们有一个类似下面的文件系统,其中/ foo是文档根。

/foo
|-- bar.png
|-- baz
|   |-- bat.html
|   `-- man.ogg
`-- home.html

使用绝对路径:如果我们想引用man.ogg中的home.html,我们会使用路径/baz/man.ogg,如果我们要从{{1}引用bar.png },我们将使用路径bat.html。我希望你能看到以斜杠开头与引用当前目录不同。