PHP'nin scandir garip davranışlar

2 Cevap php

Tamam, bu yüzden ne yapmam çalışıyorum "önceki" klasörü taramak için.

$scanned = scandir("..");
foreach($scanned as $file){

if(is_file($file)){
	print $file."<br />";		
   }
}

benim ".." dizinine i 20 + dosyaları olsa bile ben sadece üç satır olsun

index.jpg
index.php
template.dtd

tüm dosya adlarını döndürür fıkra eğer mi ki is_file kullanmak; i don fark; ama gerçekten ihtiyacınız olduğunu fıkra varsa.

2 Cevap

Ben bu üç dosya geçerli dizin ve üst her iki dizin var sanırım bir süre almak için gidiyorum. scandir() sadece dosya adlarını verir, ve is_file("../$file") Yani ne zaman is_file($file) diyorlar.

Sizin işlevi geçerli dizinde değil, önceki dizinde bu dosya için test ediyor. Istenen sonucu almak için, deneyin: is_file ('.. /' $ dosya.) Yerine.