Codice PHP:
function filtranome($name$filetype)
{
    
// todo: consider refactoring
    
$extension explode('/'$filetype);
    
// qui filtri con varie funzioni
    
$nuovonome $name;
    
$nuovonome str_replace(array(' ''.',','), '_'$nuovonome); // elimino alcuni caratteri
    
$nuovonome strtolower($nuovonome); // tutto in minuscolo
    
$nuovonome time() . '_' $nuovonome '.' 'jpeg';
    return 
$nuovonome;
}
function 
filtro($name$filetype)
{
    
// todo: consider refactoring
    
$extension explode('/'$filetype);
    
// qui filtri con varie funzioni
    
$nuovonome $name;
    
$nuovonome str_replace(array(' ''.',','), '_'$nuovonome); // elimino alcuni caratteri
    
$nuovonome strtolower($nuovonome); // tutto in minuscolo
    
$nuovonome time() . '_' $nuovonome '.' $extension[1];
    return 
$nuovonome;
}

// controllo che non ci siano stati errori nell'upload (codice = 0)
if ($_FILES['uploadfile']['error'] == 0) {
    
$acceptedTypes = array('image/jpeg','image/png','image/gif','image/jpg','image/bmp','image/png');
    
// upload ok
    // controllo formato
    
$filetype $_FILES['uploadfile']['type'];
    if (!
in_array($filetype$acceptedTypes)) {
        die(
"[b]Formato file non valido[/b]");
    }
    
// copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    
copy($_FILES['uploadfile']['tmp_name'], "file_caricati/" filtranome($_FILES['uploadfile']['name'], $filetype)) or die("[b]Impossibile caricare il file. Riprovare.[/b]");
    
copy($_FILES['uploadfile']['tmp_name'], "immagini/" filtro($_FILES['uploadfile']['name'], $filetype)) or die("[b]Impossibile caricare il file. Riprovare.[/b]");
    
// upload terminato, stampo alcune info sul file
    
echo "
[b]Upload terminato con successo[/b]
Le Informazioni riguardanti il File che hai appena caricato sono:

"
;
    echo 
"Nome file originale: ".$_FILES['uploadfile']['name']."
"
;
    echo 
"Nome file caricato: ".filtranome($_FILES['uploadfile']['name'], $filetype)."
"
;
    echo 
"Dimensione file: ".round($_FILES['uploadfile']['size']/1024,2) ." Kb
"
;
    echo 
"Tipo MIME file: ".$_FILES['uploadfile']['type']; 
Come potete vedere nel codice sopra, ho dovuto creare due funzioni:
- una che mi salvi in "file_caricati" con il formato ".jpeg".
- una che mi salvi in "immagini" con il formato originale.

Come potrei evitare di tenere obbligatoriamente queste due funzioni, cioè c'è un modo per avere gli stessi risultati (elencati nei due punti sopra), ma senza creare per forza due funzioni, non ne potrei creare una?