Renommage massif de fichiers

Contenu du snippet

Ce script permet de renommer en une suite logique les fichiers de même type d'un répertoire.

Exemple : j'ai un répertoire contenant 50 images portant l'extension "jpg" que je veux renommer en une suite logique "img01.jpg", "img02.jpg", [...], "img50.jpg".
- Je copie le source ci-dessous dans un fichier "rename.php" que je place dans le répertoire;
- J'invoque le fichier de la manière suivante :

rename.php?dir=.&ext=jpg&basename=img

La sortie indique les renommages effectués;

- et voilà ! Ceci étant un exemple, rien ne vous empêche d'adapter les paramètres de l'URL à vos besoins (dir = le dossier où se trouvent les fichiers à renommer, ext = l'extension desdits fichiers, basename = le nom de base des fichiers renommés).

Source / Exemple :


<?php

/*

  • Renommage massif de fichiers
  • Auteur : Dean
  • /
$dir = isset($_GET['dir'])?$_GET['dir']:'.'; $ext = isset($_GET['ext'])?$_GET['ext']:''; $basename = isset($_GET['base'])?$_GET['base']:'file'; $dates = array(); $dir_handle = opendir($dir); while($entry = readdir($dir_handle)) { $path = $dir.'/'.$entry; if(is_file($path) && strtolower(substr($entry, strrpos($entry, '.') + 1) == strtolower($ext))) $dates[$path] = filemtime($path); } closedir($dir_handle); asort($dates); $i = 0; while(list($path, $date) = each($dates)) { $i++; $new_name = $basename.substr(str_repeat('0', strlen(count($dates))).$i, -strlen(count($dates))).'.'.$ext; if(@rename($path, $new_name)) echo 'Renommage de <b>', basename($path), '</b> en <b>', $new_name, '</b> effectué avec succès !<br />'; else echo 'Renommage de <b>', basename($path), '</b> en <b>', $new_name, '</b> impossible.<br />'; } ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.