2013-02-14 23 views
0

我需要需要像這樣的函數中的一個文件中的函數require_once:如何在在不同的目錄

function MyFunction(){ 
    require_once('../../myfile.php'); 
    //do stuff 
} 

此功能可以在任何地方使用的網站上這樣的路徑所需文件不應該改變。我嘗試使用chdir(dirname(__FILE__));,但後來在php中改變了我的其他文件的目錄,這是不希望的。

當我在整個網站的各種目錄中時,我收到一條錯誤消息,說明所需文件無法打開流。

我該怎麼做?

回答

0

我傾向於使用$_SERVER['DOCUMENT_ROOT']這樣的事情。它依賴於您的虛擬主機文件中設置文檔根目錄的位置。

0

在這種情況下,您應該使用絕對路徑。

在你index.php你應該讓你的index.php文件的位置,這將是你的參考點:

<?php 

// store it in a constant, this info will not be changed anyway 
define('APP_PATH',dirname(__FILE__)); 

//... rest of your code here 

而且,當你要爲這個文件做了require_once(假設myfile.php是2個目錄上面的index.php文件):

require_once(dirname(dirname(APP_PATH)).DIRECTORY_SEPARATOR.'myfile.php'); 

,或者myfile.php是在同一個目錄中的index.php:

require_once(APP_PATH.DIRECTORY_SEPARATOR.'myfile.php'); 

注意

DIRECTORY_SEPARATOR是路徑分隔符在任何Linux,Unix,Mac等等在Windows PHP常數(/,或\