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

WRInaute passionné
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. :)
 
WRInaute discret
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;
}
 
WRInaute passionné
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 ?
 
WRInaute discret
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";
}
 
WRInaute passionné
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...
 
WRInaute passionné
J'ai essayé de faire mon propre script qui donne ca :
Code:
$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
 
Discussions similaires
Haut