2016-11-03 24 views
0

據我瞭解,到目前爲止,使用./引用當前文件夾,而../引用當前文件夾上一級,並使用/引用根目錄。 因此,在所有三種情況下在圖像源屬性內添加相對路徑時,它都可以正常工作,但當嘗試使用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'); 

>

+0

This StackOverflow [answer](http://stackoverflow.com/a/7378824/371392)可能會給你一些清晰的這個話題。 –

+0

您可能對包含路徑有限制,因此根目錄/實際上不是根目錄。 – Progrock

+0

但我可以參考根,如果我不使用包括 –

回答

0

你可以調整的PHP環境,這裏有一個例子:

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

不是包括絕對路徑/tmp/foo.txt,從制度根源/ 。根目錄更改爲當前目錄,並且在那裏引用文件夾tmp

上述示例將作爲以root用戶身份運行的CLI腳本工作。但是可能有其他方法可以根據Php環境進行裁剪。

以正斜槓開頭的資產的公共引用是相對於文檔根。假設我們有如下的文件系統,其中/ foo是文檔根目錄。

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

使用絕對路徑:如果我們想從home.html參考man.ogg,我們會使用路徑/baz/man.ogg,如果我們從bat.html參考bar.png,我們將使用路徑/bar.png。我希望你能看到以斜槓開始與引用當前目錄不同。

+0

感謝您的回答,但我的問題是爲什麼相對路徑在添加到圖像源的屬性中時會以不同的方式工作。 –

+0

絕對公共路徑是相對於文檔根。 – Progrock

+0

抱歉,我不明白,請您舉例說明 –