Récuperer des noms de fichiers

allweb
Invité n'ayant pas de compte PHPfrance

02 févr. 2006, 11:22

Bonjour

Savez vous comment on pourrait récupérer les noms de fichiers d'un répertoire ? Et seulement les noms (tyme monfichier.jpg) ?

Ceci afin d'en imprimer une liste.
Grand merci

Mammouth du PHP | 684 Messages

02 févr. 2006, 12:13

Salut.

Voici la petite partie de la documentation : Acces aux dossiers.
<?php
$dir = "/tmp/php5";

// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "fichier : $file : type : " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>
Il te suffit juste de modifier la partie du while. Tu remplaces le echo par ceci :
<?php
if (is_file($dir . $file)) {
    echo '$file ('.$file.') est bien un fichier.<br />';
    if (strlen($file) < 4) {
         echo 'Le fichier a un nom trop court pour avoir l\'extension .jpg';
         continue;
    }
    $rfile = strtolower(strrev($file));
    if ($rfile[0] == 'g' && $rfile[1] == 'p'
        && $rfile[2] == 'j' && $rfile[3] == '.') {
         echo 'Le fichier a l\'extension .jpg.<br />';
    }
}
?>
Ceci ne gere pas les fichiers cacher Unix. Et il manque certainement des gestions d'erreurs. Mais dans l'ensemble c'est un petit script de depart. Il existe aussi certainement d'autres solutions de tests d'extensions. Par exemple avec des regexp.

<?php
$dir = "/tmp/php5";

// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
             if (is_file($dir . $file)) {
                 echo '$file ('.$file.') est bien un fichier.<br />';
                 if (strlen($file) < 4) {
                     echo 'Le fichier a un nom trop court pour avoir l\'extension .jpg';
                      continue;
                 }
                $rfile = strtolower(strrev($file));
                if ($rfile[0] == 'g' && $rfile[1] == 'p'
                    && $rfile[2] == 'j' && $rfile[3] == '.') {
                    echo 'Le fichier a l\'extension .jpg.<br />';
                 }
            }
        }
        closedir($dh);
    }
}
?>
Zigz4g

allweb
Invité n'ayant pas de compte PHPfrance

02 févr. 2006, 14:54

Génial !

Grand merci de ton aide