1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <?php
function liste_dos($nom)
{
if (is_dir($nom))
{
// Si plusieurs remplacements il est préférable de passer un tableau dans str_replace.
$cible=[" ","_"];
$remplacement = '-'; // pourrait aussi être un tableau mais ici tous les éléments de $cible sont à remplacer par le même caractère.
$tab_fich = [];
// On utilise DirectoryIterator pour lister le dossier
$iterator = new DirectoryIterator($nom);
foreach ($iterator as $fileinfo)
{
// Si c'est un fichier ayant une extension jpg ou JPG
if ($fileinfo->isFile() && mb_strtolower($fileinfo->getExtension()) == 'jpg')
{
// getFilename() retourne le nom du fichier. $count comptera le nombre de remplacements
$work = str_replace($cible,$remplacement,$fileinfo->getFilename(),$count);
// supprime les occurrences successives de '-'. $countp comptera le nombre de remplacements
$work = preg_replace('#-{2,}#','-',$work, -1, $countp);
// si un remplacement a été effectué on renomme le fichier
if($count || $countp)
{
// Renomme le fichier. getPathname() retourne le chemin du fichier (dossier+nom), getPath() retourne le nom du dossier
rename($fileinfo->getPathname(),$fileinfo->getPath().DIRECTORY_SEPARATOR.$work);
}
// Si tu veux faire afficher les anciens noms et les nouveaux on utilise un tableau associatif
$tab_fich[$work] = $fileinfo->getFilename();
}
}
// tri sur les clés, ordre naturel
ksort($tab_fich, SORT_NATURAL);
// Si tu souhaites n'afficher que les 100 premiers éléments du tableau
$tab_fich = array_slice($tab_fich, 0, 100, true);
// Et on liste le résultat
echo "<br><b>==".$nom."==</b><br>";
echo '<table>';
foreach ($tab_fich as $work => $old)
{
echo '<tr>';
//→ affiche une flèche
echo '<td>'.$old.'</td><td>→</td><td>'.$work.'</td>';
echo '</tr>';
}
echo '</table>';
}
}
liste_dos('albums2v/11_dessinv/');
?> |
Partager