43 votes

PHP: Obtenir la liste de tous les noms de fichiers contenus dans mon répertoire d'images

J'ai essayé de trouver un moyen de la liste de tous les fichiers contenus dans un répertoire. Je ne suis pas assez bon en php pour le résoudre sur mon propre j'espère donc que quelqu'un ici peut m'aider.

J'ai besoin d'un simple script php qui vous permettra de charger tous les fichiers contenus dans mon répertoire d'images dans un tableau. Toute aide serait grandement appréciée, merci!

97voto

a.yastreb Points 911

Essayez glob

Quelque chose comme:

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

17voto

Jonathan Sampson Points 121800

scandir() - Liste des fichiers et répertoires dans le chemin d'accès spécifié

$images = scandir("images", 1);
print_r($images);

Produit:

Array
(
    [0] => apples.jpg
    [1] => oranges.png
    [2] => grapes.gif
    [3] => ..
    [4] => .
)

11voto

Gordon Points 156415

Soit scandir() comme le suggère d'ailleurs ou

  • glob() - Trouver des chemins d'accès correspondant à un motif

Exemple

$images = glob("./images/*.gif", 1);
print_r($images);

/* outputs 
Array (
   [0] => 'an-image.gif' 
   [1] => 'another-image.gif'
)
*/

Ou, pour marcher sur les fichiers dans le répertoire directement au lieu d'obtenir un tableau, utiliser

Exemple

foreach (new DirectoryIterator('.') as $item) {
    echo $item, PHP_EOL;
} 

Pour aller dans les sous-répertoires ainsi, l'utilisation RecursiveDirectoryIterator:

$items = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('.'),
    RecursiveIteratorIterator::SELF_FIRST
);

foreach($items as $item) {
    echo $item, PHP_EOL;
}

Pour répertorier uniquement les noms de fichiers (w\out répertoires), retirez - RecursiveIteratorIterator::SELF_FIRST

3voto

Anthony Points 14424

Vous pouvez également utiliser le Standard PHP Librarys' [DirectoryIterator][2] classe, plus précisément l' [getFilename][3] méthode:

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

2voto

Hardik Points 415

Cela vous donne accès à tous les fichiers dans les liens.

<?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++;
    }
}
?>

Si vous voulez télécharger le fichier particulier à partir de votre dossier vous pouvez obtenir ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X