Parcourir un répertoire et récupérer les dates de création


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Parcourir un répertoire et récupérer les dates de création

Message le Ven Mar 31, 2006 9:53

Bonjour à tous,

Je souhaiterais créer un script php qui parcourt le répertoire temporaire de mon site web (sous linux) et qui supprime les dossiers ayant plus de 25h.
Pourriez-vous m'indiquer les commandes dont je vais avoir besion pour :

- parcourir le répertoire temporaire
- récupérer les dates de dernière modification des répertoires et fichiers

Merci d'avance à tous. :)

tophus
WRInaute discret
WRInaute discret
 
Messages: 221
Inscription: 12 Aoû 2005

Message le Ven Mar 31, 2006 10:24

ca doit marcher ca:

// Lister tous les fichiers du répertoire

function browse ($pDirectory, $pExtension)
{
if($handle = opendir($pDirectory))
{
while(false !== ($file = readdir($handle)))
{
$getExt = explode(".", $file);
$countExt = count($getExt);
$fExt = $countExt - 1;
$myExt = $getExt[$fExt];

if (($myExt == $pExtension) && ($file != ".") && ($file != ".."))
{
$files[$file] = filemtime($pDirectory.'/'.$file);
}
}
}
arsort($files);
return $files;
closedir($handle);
}



//affiche la date et l'heure de modification ou création d'un fichier
function date_fic($file,$h) {
if ($h=="1")
{
$date_fic=date("Ymd à H:i", filemtime($file));
}
else
{
$date_fic=date("Ymd", filemtime($file));
}
return $date_fic;
}


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Ven Mar 31, 2006 10:34

Merci tophus, mais apparemment j'ai un petit problème, il me renvoie toujours cette date :
19700101

Pour tous mes fichiers alors que quand j'affiche leur date de modif depuis le shell, c'est le 15mars.

J'ai peur qu'il ne me renvoie la plus petite date que puisse renvoyer filemtime, qu'en pensez-vous ?

tophus
WRInaute discret
WRInaute discret
 
Messages: 221
Inscription: 12 Aoû 2005

Message le Ven Mar 31, 2006 10:42

Normalement non; pr afficher tu fais comment?

Essaye ca:

$getFile = browse("../temp", "jpg"); //metre le bon rep et l'ext recherché

foreach($getFile as $key => $val){
echo $key." --> ".date("Ymd à H:i", $val)."<br>\n";
}


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Ven Mar 31, 2006 12:02

En fait, en relisant mon post, je me rends compte que je me suis mal exprimé, j'en suis navré.

Je reprends donc, en fait je souhaite obtenir la date de dernière modification des sous-répertoires de mon dossier temp, pas des fichiers, donc je dois juste descendre d'un étage après temp/, puis lister tous les répertoires (et uniquement les répertoires), checker leur date afin de supprimer les REPERTOIRES trop anciens.

Et je n'est pas trouver de commande qui me permette d'obtenir la date de derniere modification d'un répertoire...


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Ven Mar 31, 2006 12:29

J'ai essayé de faire mon propre script qui donne ca :
Code: Tout sélectionner
$dir = $site."/temp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
   $files[] = $filename;
   $nb++;
}

sort($files);

print_r($files);
for($i=2;$i<$nb;$i++){
   $date_fic=date("Ymd", filemtime($files[$i]));
   echo $date_fic."<br>";
}


Malheureusement, il m'affiche toujours la meme date de modification :
19700101

Merci de votre aide


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités