Ho creato un semplice script php che mi è stato molto utile per verificare file un pò datati...
Immaginiamo ad esempio di lavorare su alcuni file del nostro sito, utilizzando questo semplice script possiamo verificare file modificati non di recente per poterli
ricontrollare e se necessario migliorare.
Si accettano commenti per migliorarne il codice o per segnalare eventuali errori.
Codice PHP Commentato
<?php
// nome della cartella contenente i file da verificare
$directory = 'test/';
// giusto per
$m='??';
// scan cartelle
$files = scandir($directory);
// giorno formato numerico
$num_oggi = date("d");
// unset elementi inutili ., ..
unset($files[0], $files[1]);
foreach($files as $key => $value){
// nome file tipo: nomedirectory/file.txt
$value = $directory.$value;
// numero di girorni trascorsi dall'ultimo aggiornamento
$giorno_file = $num_oggi-date("d", @filemtime($value));
// date e ora ultima modifica del file
$date_file = date ("d m Y H:i:s.", @filemtime($value));
// se l'anno è maggiore dell'anno di modifica del file segnalo come da aggiornare in rosso lampeggiante
if(date("Y") > date("Y", filemtime($value))){
$m = '<blink><span style="padding: 4px; background: red; color: #fff">1 anno o più dall'ultimo aggiornamento</span></blink>';
} else {
// se il numero di giorni dall'ultimo aggiornamento è = a 0 segnalo come aggiornato in verde
if($giorno_file != 0){
// se il file risulta essere più vecchio di un mese segnalo come da aggiornare in rosso
if(date("m") > date("m", filemtime($value))){
$m = '<span style="padding: 4px; background: #880000; color: #fff">1 mese o più dall'ultimo aggiornamento</span>';
} else {
// segnalo il numero di giorni trascorsi dall'ultimo aggiornamento del file in arancione
if($num_oggi > $giorno_file){
$m = '<span style="padding: 4px; background: orange; color: #fff">aggiornato '.$giorno_file.' giorni fa</span>';
}
}
} else {
$m = $m='<span style="padding: 4px; background: green; color: #fff">aggiornato oggi</span>';;
}
}
// elimino il file Thumbs.db dalla lista
if(strtolower($value)==strtolower($directory."thumbs.db") || $files[$key]==''){
unset($files[$key], $value);
}
// se il file non è scrivibile mostro errore
if (!is_writable($value)) {
$m = '<span style="padding: 4px; background: #ddd; color: #333">non riesco a determinare la data di modifica del file</span>';
$date_file = '<b>error</b>';
}
// elimino il nome della directory dal nome del file
$value = str_replace($directory, '', $value);
// stampo i risultati
echo "<div style="margin: 5px; padding: 5px; border:1px solid #ccc;"><h2>$value</h2> <small>ultima modifica: ".$date_file."</small> | $m</div>";
}
?>