Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822

    Cancellare tutti i file in una cartella

    Ciao

    ho una cartella che si chiama "immagini". Come si fa a cancellare tutti i file che contiene ? IO conosco la funzione unlink però riesco a cancellare solo un file alla volta..
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  2. #2
    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;


  3. #3
    scandir() è disponibile solo da PHP5

    Nei commenti di unlink (http://it2.php.net/unlink) trovi altri metodi, universali

  4. #4
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Mitico !

    La provo e poi se ho dei problemi te lo dico

    Grazie 1000
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  5. #5
    Originariamente inviato da cubalibre810
    scandir() è disponibile solo da PHP5

    Nei commenti di unlink (http://it2.php.net/unlink) trovi altri metodi, universali
    per le versioni di PHP precedenti alla 4, puoi usare la funzione di sostituzione distribuita con le librerie PEAR:

    Codice PHP:
    if(!function_exists("scandir")) {        // php.net/scandir (PHP5)
        
    function scandir($dir) {
            
    $files = array();
            
    $fh opendir($dir);
            while (
    false !== ($filename readdir($fh)))
                
    array_push($files$filename);
            
            
    closedir($fh);
            unset(
    $fh);
            unset(
    $dir);
            
            return 
    $files;
        }


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.