Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    191

    Eliminare immagini da cartella

    Vorrei eliminare le immagini in una cartella sul server, ma solo quelle il cui percorso non è presente nel db.
    E' molto complicato?
    Ciao e grazie

  2. #2
    Ma sarebbe troppo complicato farlo manualmente? Sono tante?

    Se si si può scrivere un piccolo codice.

    tipo:
    -Leggi nella cartella immagini file per file
    -Se il nome file non é presente nel database -> unlink

  3. #3
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    ad esempio:

    selezioni dal database l'elenco delle immagini, creandoti un array $immagini

    con opendir() e readdir() leggi il contenuto della tua cartella, creandoti un array $file

    scorri l'array $file con un ciclo foreach ed elimini i file che non ti servono:
    codice:
    foreach ($file as $f) {
        if (!in_array($f, $immagini)) {
            unlink($f);
        }
    }
    attenzione a mettere il percorso corretto per unlink() e a verificare i permessi sulla cartella

    www.php.net/opendir
    www.php.net/in_array
    www.php.net/unlink

    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    191
    Grazie mille, ora provo e ti fo sapere...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    191
    Non funge...
    questo è il codice

    if ($handle = opendir($_SERVER['DOCUMENT_ROOT']."/images")){
    while ($file = readdir($handle)){
    if ($file != "." & $file != "..")

    $files[]=$file;

    }
    }
    mysql_select_db($database, $db);
    $array = array();
    $query = mysql_query( "SELECT photo,photo2 from foto");
    while ($row = mysql_fetch_assoc($query) ) {
    $array['photo'][] = $row['photo'];
    $array['photo2'][] = $row['photo2'];

    }


    if(isset($_REQUEST[invia])){
    foreach ($files as $f) {
    if (!in_array($f, $array)) {
    unlink($f);
    }
    }

    }

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.