Page 1 sur 1

Récuperer des noms de fichiers

Posté : 02 févr. 2006, 11:22
par allweb
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

Posté : 02 févr. 2006, 12:13
par zigz4g
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);
    }
}
?>

Posté : 02 févr. 2006, 14:54
par allweb
Génial !

Grand merci de ton aide