2013-02-27 89 views
1

我無法找到一個很好的例子/如何在PHP腳本中遍歷目錄的解釋。PHP導航父文件夾

我必須從當前文件的偉大偉大的祖父母目錄中調用一個類。

由於我調用的文件的目錄比當前的php腳本更接近根目錄,我只想說「c:\ folder \ script.php」。

當我使用require_once (dirname('c:/folder/').'script.php');我得到配置錯誤。

這是在IIS上。斜線方向是一個因素嗎?

+1

你不能用'../../../ script.php'來做相對路徑嗎? – Barmar 2013-02-27 19:43:52

+0

是的,但相對文件並不是非常接近所需的文件。這將是一個整體lotta點和斜線。我試圖避免這種情況。 – Plummer 2013-02-27 19:46:23

+1

你爲什麼使用dirname?你得到了什麼確切的配置錯誤? – Samuel 2013-02-27 19:46:49

回答

2

是的,斜槓在Windows/Linux之間很重要。這就是爲什麼DIRECTORY_SEPARATOR不斷被髮明,它們每個版本都不相同。您應該能夠:

define('DS', DIRECTORY_SEPARATOR); // Alias to keep it short and readable 
require_once('C:' . DS . 'folder' . DS . 'script.php'); 
+1

幾十年來,Windows已經認可了Unix風格的目錄分隔符。 – Barmar 2013-02-27 19:49:08

+0

這工作。兩種斜線樣式在之前都不起作用,但是這樣做的確有用。謝謝。 – Plummer 2013-02-27 19:52:58

0

它可能更適合橫向從根目錄。

一般來說,這是一個「/」

require_once("/some/script.php"); 

或者代表,上執行腳本的頂部定義一個基本目錄,並以此作爲你的鏈接輔助變量。下面是一個例子:

define("BASEDIR", "../../../../"); // Point to the great great great grans parents just once and use them 
+0

把字符串前面的'/'表示哪個目錄的根目錄? – Plummer 2013-02-27 19:55:21

+0

它指向服務器的根目錄。網站的文檔根目錄。 – Starx 2013-02-27 19:56:06

+0

所以定義的主機域(即「c:\ inetput \ wwwroot \ mysite」)或wwwroot(即「c:\ inetput \ wwwroot」)? – Plummer 2013-02-27 19:57:32