2016-04-02 24 views
1

Aşağıdaki kodu, bu bilgileri gerektiren başka bir dizi ana sayfada bulunan bir dosyada var.Scandir, dosya yoluna eklendiğinde göreli olarak mı?

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

Doğrudan bu kodu içeren dosyayı açtığımda mükemmel çalışır. Ancak, bu dosya, söz konusu dosyalara dahil edilerek bu bilgiler diğer dosyalara sağlanabilmelidir. scandir, bu kodu DAHİL EDİLEN dosyaya göre bir yol üzerinde çalışıyor gibi görünüyor.

İçerdiği dosyanın yolunu, bu dosyanın nerede bulunduğundan bağımsız olarak nasıl kullanırım?

cevap

1

scandir içine yoluna dirname(__FILE__) eklemeyi deneyin: __FILE__

__FILE__ tam yol ve sembolik bağları çözümlenmiş dosyasının dosya adı here açıklanan çünkü

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

O çalışmalıdır. İçerisinde kullanılırsa, dahil edilen dosyanın adı döndürülür.

Hatta __DIR__

__DIR__ dosyanın dizin ile dirname(__FILE__) yerini alabilir. İçerisinde kullanılırsa, dizinine dahil edilen dosya döndürülür. Bu, dirname(__FILE__) ile eşdeğerdir. Bu dizin adı, kök dizini olmadıkça, eğik çizgisine sahip değildir.