2011-05-17 180 views
0

我有一個包含多個目錄和子目錄的站點。我只處理一個目錄:框架及其所有子目錄。所以我正在使用/framework, /framework/Module1, /framework/Module1/Class1,而下至framework/Module1/Class1/biology/microscope/microscopeTutorial/thispage.php。我不知道走向框架的路徑。包含到子目錄中而不知道要包含的文件的路徑

我需要把一個包括到我的文件,將包括框架內的文件,但我希望能夠使用該文件。我找到了兩個選擇。 $_SERVER['DOCUMENT_ROOT']不起作用,因爲我不在根目錄中。並且手動將相應數量的../../../插入千餘頁,看起來笨重,令人沮喪,並且浪費時間。

我已經編寫了一個腳本,可以在Framework中運行,它將迭代所有將添加行include('header.php');到所有文件的目錄和子目錄。編輯此腳本以適合每個子目錄幾乎與手動添加它們一樣令人沮喪。

那麼如何告訴框架和framework/Module1/Class1/biology/microscope/microscopeTutorial/之間的所有文件在框架中查找文件?

我想我需要的是一行說,繼續查找,直到找到它,然後停止。這樣的事情存在嗎?

+2

這聽起來很可怕。 – 2011-05-17 19:13:12

+0

是的。我討厭這個項目。大約有十個不同的開發者把這個網站放在一起,他們的代碼都不一樣(或者根本不是......) – EllaJo 2011-05-17 19:57:36

回答

1

我想你需要在__autoload函數中安裝它。 __autoload(className)在使用尚未加載的類時調用。

這可能是這樣的

function __autoload($className) { 
    // pick file up from current, up directory tree 
    $fname = $className.'.php'; 
    while (!file_exists($fname) { 
     $fname = '../'.$fName; 
    } 
    require_once $fname; 
} 

注 - 未測試的代碼。

+0

想通了,但它不喜歡它。頁面不會拋出錯誤,它只是忽略php並打印html – EllaJo 2011-05-17 19:53:01

0

我在Ian給出的答案上嘗試了幾個不同的變體,並嘗試了一些使用dir函數的變體。我最終決定創建我的文件的新副本,將額外的../添加到代碼的相關部分,然後在子目錄中運行該副本。

感謝您的幫助!

相關問題