PHP: my images dizininin içinde bulunan tüm dosya isimlerinin listesini alın

6 Cevap

Ben bir dizin içinde bulunan tüm dosyaları listelemek için bir yol bulmaya çalışıyorlar. Ben kendi başıma çözmek için php ile çok umarım burada birisi bana yardımcı olabilir yeterince iyi değilim.

Ben bir diziye benim images dizininin içinde bulunan tüm dosya isimleri yükler basit bir php script lazım. Herhangi bir yardım büyük mutluluk duyacağız, teşekkürler!

6 Cevap

Try glob

Gibi bir şey:

 foreach(glob('./images/*.*') as $filename){
     echo $filename;
 }

Da kullanabilirsiniz Standard PHP Library 's [DirectoryIterator][2] class, özellikle [getFilename][3] yöntemi:

 $dir = new DirectoryIterator("/path/to/images");
 foreach ($dir as $fileinfo) {
      echo $fileinfo->getFilename() . "\n";
 }

Bu size bağlantıları tüm dosyaları verir.

<?php
$path = $_SERVER['DOCUMENT_ROOT']."/your_folder/"; 

$files = scandir($path);
$count=1;
foreach ($files as $filename)
{
    if($filename=="." || $filename==".." || $filename=="download.php" || $filename=="index.php")
    {
        //this will not display specified files
    }
    else
    {
        echo "<label >".$count.".&nbsp;</label>";
        echo "<a href="download.php/?filename=".$filename."">".$filename."</a>
";
        $count++;
    }
}
?>

Eğer klasör belirli bir dosyayı indirmek istiyorsanız alabilirsiniz here.

Belki de bu fonksiyon, gelecekte yararlı olabilir. Bir şeyler echo veya başka şeyler yapmak istiyorum gerekirse fonksiyonunu işleyebilirsiniz.

$wavs = array();
$wavs = getAllFiles('folder_name',$wavs,'wav');

$allTypesOfFiles = array();
$wavs = getAllFiles('folder_name',$allTypesOfFiles);

//explanation of arguments from the getAllFiles() function
//$dir -> folder/directory you want to get all the files from.
//$allFiles -> to store all the files in and return in the and.
//$extension -> use this argument if you want to find specific files only, else keept empty to find all type of files.

function getAllFiles($dir,$allFiles,$extension = null){
    $files = scandir($dir);
    foreach($files as $file){           
        if(is_dir($dir.'/'.$file)) {
            $allFiles = getAllFiles($dir.'/'.$file,$allFiles,$extension);
        }else{
            if(empty($extension) || $extension == pathinfo($dir.'/'.$file)['extension']){
                array_push($allFiles,$dir.'/'.$file);
            }
        }
    }
    return $allFiles;
}