Bonjour j'ai code suivant
// Fonction de renommage : si fichier.ext existe, renomme en fichier1.ext ; si fichier1.ext existe, renomme en fichier2.ext etc..
function Rename_fich
($dossier,$fichier)
{
//Si le fichier existe et est un fichier valide
if (is_file($dossier.$fichier))
{
// Informations sur le fichier
$info = pathinfo($dossier.$fichier);
$extension = $info['extension'];
$filename = $info['filename'];
// Cherche dans le nom de fichier des caractères numériques en fin de nom
$num = preg_match('#[0-9]+$#',$filename,$matches)?
$matches[0] : null;
// Si des caractères numériques sont trouvés, incrémente la valeur de +1 sinon concatène 1 au nom du fichier
$filename = isset($num)?
substr($filename,0,- strlen($matches[0])).($matches[0]+1) :$filename.'1';
// Reconstruction du nom de fichier avec son extension (si elle existe)
$fichier = !empty($extension) ?
$filename.'.'.$extension : $filename;
// Appel de la fonction pour re vérification avec le nouveau nom du fichier
return Rename_fich
($dossier,$fichier);
}
}
$dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];
// $extension = strrchr(strtolower($dest_fichier), '.');
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// on vérifie si le fichier n'est pas déjà présent :
$chemin_fic = $dest_dossier . $dest_fichier;
// Vérification de l'existence du fichier dans le répertoire et si besoin renommage du fichier
$chemin_fic = Rename_fich
($chemin_fic,$dest_fichier); Le but est de renomé un fichier qui existe sur serveur.
Le souci c'est que ça ne fonctionne pas.
Le fichier est écrasé à chaque fois...