Questa funzione cancella tutti i files presenti una una cartella (passata come percorso fisico sul server, parametro $path). Permette anche di cancellare soltanto i files aventi alcune particolari estensioni (parametro $delete_only), oppure di mantenere quelli con particolari estensioni e cancellare tutti gli altri (parametro $keep_only).

ESEMPI:
Codice PHP:
// cancella tutti i files della cartella /home/temp/
unlink_dir("/home/temp/");

// cancella tutti i files con estensione JPG e DOC dalla cartella /home/temp/
unlink_dir("/home/temp/""jpg|doc");

// cancella tutti i files dalla cartella /home/temp/ mantenendo solo quelli con estensione JPG e DOC
unlink_dir("/home/temp/"null"jpg|doc"); 

Codice PHP:
/*
Cancella tutti i files presenti in una cartella.

Params:
    $path            Percorso della directory
    $delete_only    Estensioni separate da '|' dei files da eliminare; se NULL li elimina tutti
    $keep_only        Estensioni separate da '|' dei files da non eliminare; se NULL li elimina tutti
*/
function unlink_dir($path$delete_only=null$keep_only=null) {
    if (!empty(
$path) && file_exists($path)) {
        
$dir_content scandir($path);
        
        
// per evitare che "strpos" possa restituire 0 (che verrebbe confuso con FALSE)
        
if (!empty($delete_only))
            
$delete_only '||'.strtolower($delete_only).'||';
        elseif (!empty(
$keep_only))
            
$keep_only '||'.strtolower($keep_only).'||';
        
        foreach (
$dir_content AS $file) {
            if (
is_file($path.$file)) {
                
// recupera l'estensione di questo file
                
$points explode ("."$file);
                
end($points);
                
$ext strtolower(current($points));
                unset(
$points);
                
                if (!empty(
$delete_only)) {        // controlla se l'estensione del file va cancellata
                    
if (strpos($delete_only'|'.$ext.'|')>0)
                        
unlink($path.$file);
                }
                elseif (!empty(
$keep_only)) {        // controlla se l'estensione del file va mantenuta
                    
if (!strpos($keep_only'|'.$ext.'|'))
                        
unlink($path.$file);
                }
                else                                
// cancellazione di tutti i files
                    
unlink($path.$file);
                
                unset(
$ext);
            }
        }
        
        unset(
$file);
        unset(
$dir_content);
        unset(
$path);
        unset(
$delete_only);
        unset(
$keep_only);
        
        return 
true;
    }
    else
        return 
false;