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) :
ex pour $file valant 'manon.jpg' avec fichier portant le même nom dans $path
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 !!!!!
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.
Partager