Lire des dossier en ordre alphabétique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lire des dossier en ordre alphabétique

Re: Lire des dossier en ordre alphabétique

par edison1986 » 28 avr. 2013, 11:30

Et comme ça est ce que sa fonctionne :
<?php
function parcours_dossier($chemin_dossier)
{
	//On declare le tableau
	$tab_file = array();
	// On ouvre le dossier à lire
	$dossier = opendir($chemin_dossier);
	
	// On parcours l'ensemble des éléments présent dans le dossier
	while($element = readdir($dossier))
	{
		// On ne s'occupe ni du répertoire courant ni du répertoire parent
		if(($element != ".") && ($element != "..") && ($element != ".DS_Store") && ($element != "text.html"))
		{
			// Si le fichier est un dossier
			if(file_exists($chemin_dossier."/".$element) && is_dir($chemin_dossier."/".$element))
			{
				// On parcours les sous dossiers
				$tab_file_temp = parcours_dossier($chemin_dossier."/".$element);
				$tab_file = array_merge($tab_file, $tab_file_temp);
			}
			
			else
			{
				$tab_file[$chemin_dossier."/".$element] = "<div class=cadrephoto><a href=\"photos.php?gal=$chemin_dossier\"><img src=".$chemin_dossier."/".$element." width=\"100\" height=\"100\"  class=photo></a>/div>";
				break;
			}
	
		}
	}
	closedir($dossier);
	return $tab_file;
}
// On appelle la fonction de parcours des dossiers
$files = parcours_dossier("photos");
ksort($files);
$files_aff = implode("\n", $files);
echo(files);
?>

Re: Lire des dossier en ordre alphabétique

par vrpl » 28 avr. 2013, 11:09

re...
N'y arrivant pas j'ai mis ça de côté... mais la mise en ligne approche...

j'ai une erreur dans le code que tu m'a donné :

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in XXX on line 122

il semblerait aussi qu'il manque un "$" à la ligne
files_aff = implode("\n", $files);

:(

Re: Lire des dossier en ordre alphabétique

par edison1986 » 06 avr. 2013, 12:49

Salut,

Et bien essai comme ça:
   function parcours_dossier($chemin_dossier)
   {
   
      // On ouvre le dossier à lire
      $dossier = opendir($chemin_dossier);

      // On parcours l'ensemble des éléments présent dans le dossier
         while($element = readdir($dossier))
         {
            // On ne s'occupe ni du répertoire courant ni du répertoire parent
            if(($element != ".") && ($element != "..") && ($element != ".DS_Store") && ($element != "text.html"))
            {
               // Si le fichier est un dossier
               if(file_exists($chemin_dossier."/".$element) && is_dir($chemin_dossier."/".$element))
               {
               // On parcours les sous dossiers
               $tab_file_temp = parcours_dossier($chemin_dossier."/".$element);
               $tab_file = array_merge($tab_file, $tab_file_temp);
               }

            else
            {
            $tab_file[$chemin_dossier."/".$element] = "<div class=cadrephoto><a href=\"photos.php?gal=$chemin_dossier\"><img src=".$chemin_dossier."/".$element." width=\"100\" height=\"100\"  class=photo></a>/div>";
            break;
            }

      }
}
closedir($dossier);
return $tab_file;
}
// On appelle la fonction de parcours des dossiers
$files = parcours_dossier("photos");
ksort($files);
files_aff = implode("\n", $files);
echo(files);

Re: Lire des dossier en ordre alphabétique

par vrpl » 05 avr. 2013, 19:42

merci encore, mais je ne sais pas faire... j'essaye depuis plusieurs jours, rien n'y fait, je pige pas.

Re: Lire des dossier en ordre alphabétique

par edison1986 » 05 avr. 2013, 13:50

Et bien c'est comme je te l'ai dit plus haut, le stockage doit se faire à la place du print et le tri à la fin.
Test comme ça et dis nous si sa fonctionne...

Re: Lire des dossier en ordre alphabétique

par vrpl » 05 avr. 2013, 13:26

Merci pour ta réponse !
mais c'est bien là que je coince, j'ai bien compris qu'il fallait faire un tableau, et un "sort", mais je n'arrive pas à trouver l'endroit ni la structure du code...

J'ai jamais été doué avec la fonction de tableaux...

Re: Lire des dossier en ordre alphabétique

par edison1986 » 05 avr. 2013, 12:30

Salut,

Et bien au lieu d'afficher directement le résultat tu le stock dans un tableau avec comme clé l'élément à trier puis à la fin tu fais un ksort() sur ce tableau et tu affiche..

Dis nous si sa te va.

Lire des dossier en ordre alphabétique

par vrpl » 05 avr. 2013, 12:01

Bonjour à tous,

j'utilise la portion de code ci-dessous pour générer une galerie de photos.
j'ai un dossier "photos", dedans des dossiers du type 20040514_Paris, 20060815_Nantes, 20100418_Bordeaux... etc. avec des JPG dedans

ce script m'affiche une photo de chaque dossier, ensuite je clique sur la photos et le script m'affiche toutes les photos du dossier, ça ça marche.
mais le script ne m'affiche pas dans l'ordre alphabétique (chronologique donc), j'ai ouïe dire que la fonction "sort" pourrais le faire, mais je ne trouve pas où la placer...

merci de votre aide

Code : Tout sélectionner

function parcours_dossier($chemin_dossier) { // On ouvre le dossier à lire $dossier = opendir($chemin_dossier); // On parcours l'ensemble des éléments présent dans le dossier while($element = readdir($dossier)) { // On ne s'occupe ni du répertoire courant ni du répertoire parent if(($element != ".") && ($element != "..") && ($element != ".DS_Store") && ($element != "text.html")) { // Si le fichier est un dossier if(file_exists($chemin_dossier."/".$element) && is_dir($chemin_dossier."/".$element)) { // On parcours les sous dossiers parcours_dossier($chemin_dossier."/".$element); } else { print "<div class=cadrephoto><a href=\"photos.php?gal=$chemin_dossier\"><img src=".$chemin_dossier."/".$element." width=\"100\" height=\"100\" class=photo></a>/div>\n"; break; } } } closedir($dossier); } // On appelle la fonction de parcours des dossiers parcours_dossier("photos");