2016-04-02 72 views
1

我在一個文件中包含以下代碼,其中包含到需要此信息的其他頁面的主機中。Scandir相對於包含文件的路徑嗎?

$directory_list = scandir("../packages"); 
$known_directories = [ 
    ".", 
    ".." 
]; 
$unknown_directories = $result = array_diff($directory_list, $known_directories); 

當我直接打開包含此代碼的文件時,它完美地工作。但是,該文件需要能夠通過包含在所述文件中而將該信息提供給其他文件。看起來scandir正在相對於INCLUDED這個代碼的文件的路徑上運行。

無論包含此文件的位置如何使用包含文件的路徑?

回答

1

嘗試添加dirname(__FILE__)到您的路徑進入scandir

$directory_list = scandir(dirname(__FILE__)."/../packages"); 
$known_directories = [ 
    ".", 
    ".." 
]; 
$unknown_directories = $result = array_diff($directory_list, $known_directories); 

因爲__FILE__描述here

__FILE__的完整路徑,並解決符號鏈接的文件的文件名應該工作。如果在包含內使用,則包含文件的名稱是 返回。

你甚至可以__DIR__

__DIR__文件的目錄代替dirname(__FILE__)。如果在include中使用,則返回包含文件的目錄 。這相當於 dirname(__FILE__)。除非目錄名是根目錄,否則此目錄名沒有尾部斜槓 。

相關問題