Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Cancellazione di una cartella e del suo contenuto

    Ciao a tutti. Ho bisogno di un vostro aiuto sulla cancellazione di una cartella e del suo contenuto.

    Ho usato questa funzione :


    function eliminacartella($nomecartella) {
    if($contenuti = @glob($nomecartella."/*")){
    foreach($contenuti as $contenuto) {
    @is_dir($contenuto)? rmdirr($contenuto) : @unlink($contenuto);
    }
    }
    @rmdir($nomecartella);
    }

    Il nome della cartella è su uno spazio Linux Aruba (Può centrare qualcosa?). Non ho nessun errore di ritorno.
    Comunque vorrei cancellare il contenuto della cartella e il suo contenuto per ricrearla e ripopolarla.
    Qualcuno può darmi un aiutino?

  2. #2
    sono interessato anchio alla risposta...
    a me da errore qui:

    Codice PHP:
    function eliminacartella($nomecartella){                
    if(
    $contenuti = @glob($nomecartella."/*")){
    foreach(
    $contenuti as $contenuto) {
    @
    is_dir($contenuto)? rmdirr($contenuto) : @unlink($contenuto); //A questa riga e mi dice "Call to undefined function rmdirr()"
    }
    }
    @
    rmdir($nomecartella);


  3. #3
    è scritta in modo errato,

    rmdir è corretto

  4. #4
    lol già non me ne ero accorto

  5. #5
    secondo me è sbagliata cmq...
    se la cartella contienen delle sottocartelle va cmq in tilt.

    Devi fare una funzione ricorsiva (secondo me)

  6. #6
    vero

  7. #7
    ho trovato una funzione sul web, l'ho un po' riadattata e ora funziona alla perfezione:
    Codice PHP:
    function eliminaCartella($dir) {
       if(
    $objs = @glob($dir."/*")){
            foreach(
    $objs as $obj) {
         @
    is_dir($obj)? eliminaCartella($obj) : @unlink($obj);
          }
     }
    @
    rmdir($dir);


  8. #8
    Ok grazie a tutti. La funzione finale di mattealex funziona alla grande anche su Aruba.
    Adesso ho un problema di adattamento.
    Ho un form di modifica (modifica.php) di un annuncio con immagini inserito precedentemente che fa riferimento alla pagina modificaarticolo.php dove all'interno ho inserito questo script :

    script che modifica il testo
    ...
    $id=$_POST['id'];
    function eliminaCartella($dir) {
    if($objs = @glob($dir."/*")){
    foreach($objs as $obj) {
    @is_dir($obj)? eliminaCartella($obj) : @unlink($obj);
    }
    }
    @rmdir($dir);
    }
    $minia = "miniature" . "/" . "$id";
    eliminaCartella($minia);

    le cartelle si trovano all'interno della cartella miniature:
    miniature con all'interno 125, 126,127...

  9. #9
    Ah mi sono dimenticato di dire che non funziona. Sarà un problema di percorso?

  10. #10
    prova questa:
    Codice PHP:
    <?php 
     
    function rrmdir($dir) { 
       if (
    is_dir($dir)) { 
         
    $objects scandir($dir); 
         foreach (
    $objects as $object) { 
           if (
    $object != "." && $object != "..") { 
             if (
    filetype($dir."/".$object) == "dir"rrmdir($dir."/".$object); else unlink($dir."/".$object); 
           } 
         } 
         
    reset($objects); 
         
    rmdir($dir); 
       } 
     } 
    ?>
    Fonte: php.net

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.