Codice PHP:
function renameUploadFile($real_photo$photo_dir)
    {
    
//elimino dal nome della foto caratteri strani e la rinomino
    
$tmp                                    =        explode("."$real_photo);
    
$real_photo_no_ext        =        strtolower(replaceSpecial($tmp[0]));
    
$real_photo_ext                =        strtolower(replaceSpecial($tmp[1]));
    
$rename_photo                    =        $real_photo_no_ext.".".$real_photo_ext;

    
//controllo che il nuovo nome del file non sia gia presente nella directory, eventualmente lo rinomino
    
$exists_photo    =    $photo_dir.$rename_photo;
    
$count                =    1;

    while(
file_exists($exists_photo))
        {
        
$rename_photo    =    $real_photo_no_ext."_".$count.".".$real_photo_ext;    
        
$exists_photo    =    $photo_dir.$rename_photo;
        
$count++;
        }
    
    return 
$rename_photo;
    } 
cosi controlli se in quella cartella esiste gia il nome del file se il file esiste ci agiguni un _1
se esiste anche nome_file_1.jpg ilfiel diventa nome_file_2.jpg non sovrascrivendo niente

la funzioen repalceSpecial, per eliminare tutti i tipi di caratteri che in un nome di una foto non vanno bene e' questa

Codice PHP:
function replaceSpecial($var)
{
    
$var str_replace("!","",$var);
    
$var str_replace("\"","",$var);
    
$var str_replace("#","",$var);
    
$var str_replace("$","",$var);
    
$var str_replace("%","",$var);
    
$var str_replace("'","",$var);
    
$var str_replace("(","",$var);
    
$var str_replace(")","",$var);
    
$var str_replace("*","",$var);
    
$var str_replace("+","",$var);
    
$var str_replace(",","",$var);
    
$var str_replace("-","",$var);
    
$var str_replace("/","",$var);
    
$var str_replace(";","",$var);
    
$var str_replace("<","",$var);
    
$var str_replace("=","",$var);
    
$var str_replace(">","",$var);
    
$var str_replace("?","",$var);
    
$var str_replace("@","",$var);
    
$var str_replace("[","",$var);
    
$var str_replace("\\","",$var);
    
$var str_replace("]","",$var);
    
$var str_replace("^","",$var);
    
//$var = str_replace("_","",$var);
    
$var str_replace("`","",$var);
    
$var str_replace("{","",$var);
    
$var str_replace("|","",$var);
    
$var str_replace("}","",$var);
    
$var str_replace("~","",$var);
    
$var str_replace("‘","",$var);
    
$var str_replace("’","",$var);
    
$var str_replace("¡","",$var);
    
$var str_replace("¢","",$var);
    
$var str_replace("£","",$var);
    
$var str_replace("¤","",$var);
    
$var str_replace("¥","",$var);
    
$var str_replace("¦","",$var);
    
$var str_replace("§","",$var);
    
$var str_replace("¨","",$var);
    
$var str_replace("©","",$var);
    
$var str_replace("ª","",$var);
    
$var str_replace("«","",$var);
    
$var str_replace("¬","",$var);
    
$var str_replace("®","",$var);
    
$var str_replace("_","",$var);
    
$var str_replace("¯","",$var);
    
$var str_replace("°","",$var);
    
$var str_replace("±","",$var);
    
$var str_replace("²","",$var);
    
$var str_replace("³","",$var);
    
$var str_replace("´","",$var);
    
$var str_replace("µ","",$var);
    
$var str_replace("¶","",$var);
    
$var str_replace("·","",$var);
    
$var str_replace("¹","",$var);
    
$var str_replace("º","",$var);
    
$var str_replace("»","",$var);
    
$var str_replace("¼","",$var);
    
$var str_replace("½","",$var);
    
$var str_replace("¾","",$var);
    
$var str_replace("¿","",$var);
    
$var str_replace("À","A",$var);
    
$var str_replace("Á","A",$var);
    
$var str_replace("Â","A",$var);
    
$var str_replace("Ã","A",$var);
    
$var str_replace("Ä","A",$var);
    
$var str_replace("Å","Aa",$var);
    
$var str_replace("Æ","Ae",$var);
    
$var str_replace("Ç","C",$var);
    
$var str_replace("È","E",$var);
    
$var str_replace("É","E",$var);
    
$var str_replace("Ê","E",$var);
    
$var str_replace("Ë","E",$var);
    
$var str_replace("Ì","I",$var);
    
$var str_replace("Í","I",$var);
    
$var str_replace("Î","I",$var);
    
$var str_replace("Ï","I",$var);
    
$var str_replace("Ð","D",$var);
    
$var str_replace("Ñ","N",$var);
    
$var str_replace("Ò","O",$var);
    
$var str_replace("Ó","O",$var);
    
$var str_replace("Ô","O",$var);
    
$var str_replace("Õ","O",$var);
    
$var str_replace("Ö","Oe",$var);
    
$var str_replace("×","X",$var);
    
$var str_replace("Ø","Oe",$var);
    
$var str_replace("Ù","U",$var);
    
$var str_replace("Ú","U",$var);
    
$var str_replace("Û","U",$var);
    
$var str_replace("Ü","Ue",$var);
    
$var str_replace("Ý","Y",$var);
    
$var str_replace("Þ","",$var);
    
$var str_replace("ß","ss",$var);
    
$var str_replace("à","a",$var);
    
$var str_replace("á","a",$var);
    
$var str_replace("â","a",$var);
    
$var str_replace("ã","a",$var);
    
$var str_replace("ä","ae",$var);
    
$var str_replace("å","aa",$var);
    
$var str_replace("æ","ae",$var);
    
$var str_replace("ç","c",$var);
    
$var str_replace("é","e",$var);
    
$var str_replace("è","e",$var);
    
$var str_replace("ê","e",$var);
    
$var str_replace("ë","ee",$var);
    
$var str_replace("ì","i",$var);
    
$var str_replace("í","i",$var);
    
$var str_replace("î","i",$var);
    
$var str_replace("ï","ie",$var);
    
$var str_replace("ð","",$var);
    
$var str_replace("ñ","n",$var);
    
$var str_replace("ò","o",$var);
    
$var str_replace("ó","o",$var);
    
$var str_replace("ô","o",$var);
    
$var str_replace("õ","o",$var);
    
$var str_replace("ö","oe",$var);
    
$var str_replace("÷","",$var);
    
$var str_replace("ø","oe",$var);
    
$var str_replace("ù","u",$var);
    
$var str_replace("ú","u",$var);
    
$var str_replace("û","u",$var);
    
$var str_replace("ü","ue",$var);
    
$var str_replace("ý","y",$var);
    
$var str_replace("þ","th",$var);
    
$var str_replace("ÿ","y",$var);
    
$var str_replace(" ","_",$var);

    return(
$var);
    }