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
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
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
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:
attenzione a mettere il percorso corretto per unlink() e a verificare i permessi sulla cartellacodice:foreach ($file as $f) { if (!in_array($f, $immagini)) { unlink($f); } }
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.
Grazie mille, ora provo e ti fo sapere...
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);
}
}
}