Tüm jpg dir dosyaları ve subdirs listeleme

3 Cevap

Ben PHP5'ta verilen bir dizin ve onun alt dizinleri Nasıl bütün jpg dosyaları listeleyebilirsiniz?

Ben bunun için bir topak desen yazabilirsiniz düşündüm ama ben onu anlamaya olamaz.

thanx b.

3 Cevap

Bir filter ile RecursiveDirectoryIterator kullanabilirsiniz:

class ImagesFilter extends FilterIterator
{
    public function accept()
    {
        $file = $this->getInnerIterator()->current();
        return preg_match('/\.jpe?g$/i', $file->getFilename());
    }
}

$it = new RecursiveDirectoryIterator('/var/images');
$it = new ImagesFilter($it);

foreach ($it as $file)
{
    // Use $file here...
}

$file, bir SplFileInfo amacıdır.

sizin için yapmadan. özyineleme burada cevaptır. bir dir görünüyor ve tüm dosyaların bir listesini alır bir işlev. i herhangi bir alt dirs bulursa sadece jpg yıllardan inci filtreler üzerinden daha sonra kendi kendini çağırır

Ben daha fazlasını yapmak için zaman vardı ve dilek Test, ama bu bir başlangıç ​​noktası olarak kullanılabilir: o (denenmemiş) belirtilen dizindeki tüm JPG / JPEG dosyaları içeren bir dizi döndürür.

function load_jpgs($dir){
    $return = array();
    if(is_dir($dir)){
    	if($handle = opendir($dir)){
    		while(readdir($handle)){
    			echo $file.'<hr>';
    			if(preg_match('/\.jpg$/',$file) || preg_match('/\.jpeg$/',$file)){
    				$return[] = $file;
    			}
    		}
    		closedir($handle);
    		return $return;
    	}
    }
    return false;
}