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