Scusate il titolo ma capirete tra un po cosa significa.
Ho fatto una funzione che mi va a controllare se un file inviato ha lo stesso nome di un file già salvato:

Codice PHP:
function gallery($dir$image$ciclo){
$file=$dir.$image;

if(
file_exists($file)){ // controllo se il file esiste
$ciclo++; // aumento di 1 unita il ciclo
$images=explode(".",$image); // converto in array l'immagine
$ext=$images[count($images) - 1]; // mi creo una variabile dove vado a salvare l'estensione del file
unset($images[count($images) - 1]); // elimino l'ultimo array che sarebbe l'estensione
$newimage=implode(".",$images); // riunisco il nome del file
$newimage.="_$ciclo.$ext"// aggiungo il ciclo e l'estensione al nome del file.

// ora il problema viene qui e non capisco il perchè e cioè mi dovrebbe rifare la funzione per verificare se questo nuovo nome esiste oppure no ma non lo fa
gallery($dir$newimage$ciclo);
}else{
return 
$image;
}
}
echo 
gallery("../direcotry/""image.jpg"0);