Rettifico la mia funzione per un bug:
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
// verifico se vi è un backslash nell'ultimo array e se la variabile ciclo è maggiore di 1
// questo perche al primo passaggio queste righe verranno ignorate
if(strpos($images[count($images) - 1], "_") == true && $ciclo>1){
$lastarr=$images[count($images) - 1]; // inserisco l'ultimo array in una variabile
$char=substr($lastarr,-1); // ne estraggo l'ultimo carattere
if(is_numeric($char)) $images[count($images) - 1]=substr($lastarr,0,-2); // verifico se quest'ultimo carattere è numerico, se è affermativo tolgo gli ultimi 2 caratteri alla stringa $lastarr e la salvo il rimanente della stringa nell'ultimo array images
}
$newimage=implode(".",$images); // riunisco il nome del file
$newimage.="_$ciclo.$ext"; // aggiungo il ciclo e l'estensione al nome del file.
// riprendo la funzione
return gallery($dir, $newimage, $ciclo);
}else{
return $image;
}
}
echo gallery("../direcotry/", "image.jpg", 0);