Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2011, 15h53   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Ranger des images sans BDD

Bonjour, j'aimerais ranger des images uploadées par ordre d'uploadage mais elles sont rangées par ordre alphabétique voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
            $dos = 'uploads/min';
            $dir = opendir($dos);
            $nbImagesMax = 8;
            $i = -1;
            while($i <= $nbImagesMax && $file = readdir($dir))
            {
                $allow_ext = array('jpg','png','gif');
                $ext = strtolower(substr($file,-3));
                if(in_array($ext,$allow_ext))
                {
            ?>
 
        <div id="min"> 
            <div class="min">
                <a href="uploads/<?php echo $file; ?>">
                <img src="uploads/min/<?php echo $file; ?>" alt="<?php echo $file; ?> indisponible" />
                </a>
                <h3><?php echo $file; ?></h3>
            </div>
        </div>
 
            <?php
                }
                $i++;
            }
            ?>
Comment les rangée par ordre d'uploadage ? (sachant que je n'utilise pas de BDD)

Merci d'avance.
Mr_PHP59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 16h10   #2
Membre expérimenté
 
Inscription : janvier 2007
Messages : 620
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 620
Points : 553
Points : 553
Bonjour,
ça va être assez compliqué, je crois.
Tu récupères la liste de tes fichiers dans un tableau. Tu utilises filemtime ou fstat pour récupérer la date de dernière modification des fichiers un à un que tu enregistres dans ce tableau ensuite tu trie le tableau par l'ordre de ce que tu as récupéré avec la fonction filemtime, sachant que ce sera un timestamp.

Je dis compliqué parce c'est possible qu'il y ait une autre idée plus intéressante!
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 16h27   #3
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
Je suis débutant en Php, pourrais-tu me montrer avec le code, car j'ai du mal à visualiser sans.

Merci.
Mr_PHP59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 17h48   #4
Membre expérimenté
 
Inscription : janvier 2007
Messages : 620
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 620
Points : 553
Points : 553
Bonjour,
Un petite heure à se casser la tête. Je n'avais jamais fait de tri de tableau multidimensionnel. Cela m'a permis d'apprendre. Merci.

Voila le code :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$dir = 'uploads/min';  
echo '<B>AVANT</B><br>';
// LECTURE DU REPERTOIRE SELECTION JUSTE DES FICHIER JPG
// ET LES INSERER DANS LE TABLEAU
$cpt=0;
if (is_dir($dir)) 
{
    if ($dh = opendir($dir)) 
	{
        while (($file = readdir($dh)) !== false) 
		{	
			$pathparts= pathinfo($file);
			if ($pathparts["extension"]=="jpg") 
				{
					$lefichier = $dir.'/'.$pathparts["basename"];
					$ladate = filemtime($lefichier);
					echo 'fichier : '.$pathparts["basename"].' : modif : ' . date ("F d Y H:i:s.", filemtime($lefichier)) . "<br>\n";
					$tableau[$cpt]=array('nom'=>$lefichier,'date'=>filemtime($lefichier));
 
					$cpt++;
				}	
		}
    }
        closedir($dh);
 }
 // PROCEDURE DU TRI DE TABLEAU MULTIDIMENSIONNEL
 foreach ($tableau as $key => $row) {
    $nom[$key]  = $row['nom'];
    $date[$key] = $row['date'];
}
array_multisort($nom, SORT_DESC, $date, SORT_ASC, $tableau);
 
// AFFICAGE DU RESULTAT
 echo '<B>APRES</B><br><br>';
  for ($i=0; $i<$cpt; $i++)
 {	echo $tableau[$i]['nom'].'  --- '.date ("F d Y H:i:s.",$tableau[$i]['date']).'<br>';
 
 }
?>

Pas de finesse, c'est vrai mais ça fonctionne. A toi de l'adapter à tes besoins.
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web