Bonsoir à tous,

voilà je vous explique mon petits soucis pourtant et sûrement bien anodin.

J'ai une fonction qui se charge de vérifier si un nom de fichier existe déjà (ex ici 'manon.jpg'), ce qui me permet de nommer mon fichier différemment si un autre fichier porte déjà le même nom.

Cette fonction marche très bien à un détail près. Elle ne me passe pas le return dans ma variable appelante ($myImgNameVerif), alors que l'echo de sortie de ma fonction me retourne bien le nouveau nom 'manon-1.jpg'

Voici ma fonction, ça sera plus parlant (cf comments code) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
function fExist($path,$file,$i=1){
 
   //Si fichier existe, on rajoute un '-$i' avant l'extension 
   if (file_exists($path.'/'.$file)){      
        $newname=str_replace(substr($file,-4),'-'.$i.'.jpg',$file);        
        fExist($path,$newname,$i++);
    }
 
    //Si fichier n'existe pas, on retourne son nom
    else{       
        echo $file; // Renvoie bien le nouveau nom de fichier 'manon-1.jpg'
        return $file;
    }    
 
 }
 
//Appel fonction contrôlant existance fichier
$myImgNameVerif=fExist($source,'manon.jpg');
 
//Affichage retour appel fonction pour obtenir nom fichier à utiliser
echo 'Verif :'.$myImgNameVerif; // Ne me renvoie rien !!!!!
ex pour $file valant 'manon.jpg' avec fichier portant le même nom dans $path

Est ce que l'un de vous aurait une idée du pourquoi du comment ?

J'ai essayé tout un tas de choses : conversion variable retour en string dans fonction....

Par avance merci de vos retours.