Liste de dossier en ordre avec readdir
Résolu
Xella60
Messages postés
69
Statut
Membre
-
Defouille Messages postés 404 Statut Membre -
Defouille Messages postés 404 Statut Membre -
Bonjour,
Une page d'intranet sur lequel je travail affiche les sauvegardes de la base de donnée, je voudrais que les sauvegardes s'affichent de la plus récente à la plus ancienne.
Or, les dossiers s'affichent dans n'importe quel ordre...
Les sauvegardes s'enregistrent sous cette forme icsmDb_07-01-2010_15h16m18s.sql
Voici le code:
<?php
include('../init.php');
echo "<h1>Gestions des sauvegardes</h1>";
echo "<div id='contenu'>";
echo "<input type='button' value='Sauvegarder la base' onClick=goDump(); style='float:right;margin:7px;'/>";
echo "<div class='caseEntete' style='margin-top:5px;padding-bottom:15px;'>Liste des sauvegardes effectuées</div>";
$dir = opendir("dump/");
$cptColor=0;
while ($file = readdir($dir)) {
if ($file!=".." && $file!="."){
$f=explode("_",$file);
$h=explode(".",$f[2]);
$cptColor++;
echo "<div style='float:right;margin:5px;'>";
echo "<input type='button' value='Restaurer' onClick=goRestaure('sauvegardes/dump/$file'); />";
echo "<input type='button' value='X' onClick=goDelSauv('sauvegardes/dump/$file'); />";
echo "</div>";
echo "<div class='case".$cptColor."Spe' style='padding-bottom:10px;'>";
echo "<strong>$f[1] à $h[0]</strong><br/>";
echo ">> <a href='sauvegardes/dump/$file' target='_blank'>$file</a>";
echo "</div>";
if($cptColor>=2){
$cptColor=0;
}
}
}
echo "</div>";
?>
Une page d'intranet sur lequel je travail affiche les sauvegardes de la base de donnée, je voudrais que les sauvegardes s'affichent de la plus récente à la plus ancienne.
Or, les dossiers s'affichent dans n'importe quel ordre...
Les sauvegardes s'enregistrent sous cette forme icsmDb_07-01-2010_15h16m18s.sql
Voici le code:
<?php
include('../init.php');
echo "<h1>Gestions des sauvegardes</h1>";
echo "<div id='contenu'>";
echo "<input type='button' value='Sauvegarder la base' onClick=goDump(); style='float:right;margin:7px;'/>";
echo "<div class='caseEntete' style='margin-top:5px;padding-bottom:15px;'>Liste des sauvegardes effectuées</div>";
$dir = opendir("dump/");
$cptColor=0;
while ($file = readdir($dir)) {
if ($file!=".." && $file!="."){
$f=explode("_",$file);
$h=explode(".",$f[2]);
$cptColor++;
echo "<div style='float:right;margin:5px;'>";
echo "<input type='button' value='Restaurer' onClick=goRestaure('sauvegardes/dump/$file'); />";
echo "<input type='button' value='X' onClick=goDelSauv('sauvegardes/dump/$file'); />";
echo "</div>";
echo "<div class='case".$cptColor."Spe' style='padding-bottom:10px;'>";
echo "<strong>$f[1] à $h[0]</strong><br/>";
echo ">> <a href='sauvegardes/dump/$file' target='_blank'>$file</a>";
echo "</div>";
if($cptColor>=2){
$cptColor=0;
}
}
}
echo "</div>";
?>
A voir également:
- Liste de dossier en ordre avec readdir
- Liste déroulante excel - Guide
- Dossier appdata - Guide
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante en cascade - Guide
- Impossible de supprimer un dossier - Guide
3 réponses
Bonjour,
voila une solution, peut être pas la plus élégante ou la plus rapide mais je pense que ça peut te débloquer :
voila une solution, peut être pas la plus élégante ou la plus rapide mais je pense que ça peut te débloquer :
<?php
include('../init.php');
echo "<h1>Gestions des sauvegardes</h1>";
echo "<div id='contenu'>";
echo "<input type='button' value='Sauvegarder la base' onClick=goDump(); style='float:right;margin:7px;'/>";
echo "<div class='caseEntete' style='margin-top:5px;padding-bottom:15px;'>Liste des sauvegardes effectuées</div>";
$dir = opendir("dump/");
$cptColor=0;
// test ex : icsmDb_07-01-2010_15h16m18s.sql
// $t[] = "icsmDb_07-01-2010_16h16m18s.sql";
// $t[] = "icsmDb_06-01-2009_13h16m18s.sql";
// $t[] = "icsmDb_05-01-2010_15h16m18s.sql";
// $t[] = "icsmDb_05-01-2010_15h16m18s.sql";
$fichiers = array() ;
$temps_svg = array();
// test : foreach($t as $file)
while ($file = readdir($dir))
{
if ($file!=".." && $file!=".")
{
$f=explode("_",$file);
$h=explode(".",$f[2]);
$d=explode("-",$f[1]);
$date = $d[2]."-".$d[1]."-".$d[0] ;
$heure = str_replace("h", ":", $h[0]);
$heure = str_replace("m", ":", $heure);
// On met dans un tableau le nom des fichiers avec en clé le timestamp
$fichiers[strtotime($date." ".$heure)][] = $file;
}
}
// On classe le tableau par clé (et donc par timestamp)
uksort($fichiers, "strnatcasecmp");
// On affiche le tableau
foreach($fichiers as $date => $fics)
{
// Boucle supplémentaire au cas ou plusieurs sauvegardes aient la meme date
foreach($fics as $file)
{
$cptColor++;
echo "<div style='float:right;margin:5px;'>";
echo "<input type='button' value='Restaurer' onClick=goRestaure('sauvegardes/dump/$file'); />";
echo "<input type='button' value='X' onClick=goDelSauv('sauvegardes/dump/$file'); />";
echo "</div>";
echo "<div class='case".$cptColor."Spe' style='padding-bottom:10px;'>";
echo "<strong>".date("Y-m-d h:m", $date)."</strong><br/>";
echo ">> <a href='sauvegardes/dump/$file' target='_blank'>$file</a>";
echo "</div>";
if($cptColor>=2)
$cptColor=0;
}
}
echo "</div>";
?>