Selection photos à afficher

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 : Selection photos à afficher

par D4Y » 22 avr. 2009, 13:56

Sinon , j'ai trouvé cette fonction qui pourrait t'aider :
 <?
 function ParcourirDossier($LienRepertoir,$extentionRecherchee="",$tableauDeFichier=false)
{
$extention=str_replace(".","\.",$extentionRecherchee);
 if(!$tableauDeFichier)
 {
$tableauDeFichier[0]='';
 }
 if(is_dir($LienRepertoir))
 {
$ClassDir= dir($LienRepertoir);
     while(($nomFichier=$ClassDir->read())!=false)
     {
     if($nomFichier=='.'||$nomFichier=='..')
     {
     continue;
     }
     elseif(is_dir($LienRepertoir."/".$nomFichier))
     {
     //si vous enlevez se commentaire vous aurez le nom des dossiers en plus
     //array_push($tableauDeFichier,$LienRepertoir."/".$nomFichier);
     $tableauDeFichier= ParcourirDossier($LienRepertoir."/".$nomFichier,$extentionRecherchee,$tableauDeFichier);
     }
     elseif(ereg(".*$extention$",$nomFichier))
     {
     If($tableauDeFichier[0]=='')
     {
     $tableauDeFichier[0]=$LienRepertoir."/".$nomFichier;
     }
     else
     {
     array_push($tableauDeFichier,$LienRepertoir."/".$nomFichier);
     }
     }
     }
     return $tableauDeFichier;
     }
     else
     {
     echo "Erreur";
     return false;
     }
     }
     /**
    * * Exemple pour inclure tous les fichiers *.inc.php du répertoire include/function
    * * si il y a des répertoires dans le dossier include/function il ira les parcourir et de même si il y a des répertoires dans le répertoire ,...
    * * si vous mettez rien à la place de .inc.php il inclura tous les fichiers
    * */
     $tableFichier = ParcourirDossier("include/function",".inc.php");
     foreach($tableFichier as $lienFichier)
     {
     include($lienFichier);
     }
     ?>

par D4Y » 22 avr. 2009, 13:40

oui effectivement mais il te suffit de faire une boucle ;)

par Dom! » 22 avr. 2009, 13:27

Non toujours la même erreur.
Notice: Undefined offset: 1 in C:\Program Files\EasyPHP 3.0\www\CAGNES BASKET\indexK.php on line 192
Mais avec ton code j'affiche uniquement les photos contenu dans un dossier, alors que je veux afficher des photos contenus dans plusieurs dossiers.

C'est bien ca ?

par D4Y » 22 avr. 2009, 06:46

folder correspond à $folder = "photos/album1"; par exemple
Les photos se trouvant dans album1 .

par Dom! » 21 avr. 2009, 23:35

Merci pour vos réponses qui vont surement m'aider.

Par contre D4Y dans ton code à quoi correspond $folder ?
J'ai essayé de mettre le lien qui pointe vers les dossiers contenant mes images mais j'ai l'erreur :

Notice: Undefined offset: 1 in D:\EasyPHP 2.0b1\www\CAGNES BASKET\indexK.php on line 195

sachant que la ligne 195 correspond au code :
 if($matches[1]) 
Merci pour vos aides

par Nours312 » 21 avr. 2009, 23:10

salut :

pour le premier point, je te conseillerais une fonction récursive pour implémenter ta table,

tu part du dossier en lançant la fonction, celle-ci liste le dossier et ajoute toutes les images dans une table, si elle trouve un dossier, elle appelle une nouvelle fonction (elle meme) avec en parametre le dossier trouvé ... sans fin ! et liste ainsi tous les fichiers !!

pour ce qui est du point 2, pour vérifier que l'on ne prend pas en compte les nom commançant par "tn_", il te suffit de vérifier avec strpos() au cas ou il soit présent (vérifié avec ereg() )
if (strpos('tn_', $nomImg) != false || ! ereg('tn_', $nomImg)) { ...} // enfin, dans le genre ;)
@+

par D4Y » 21 avr. 2009, 23:03

Voici un code que j'utilise pour afficher mes miniatures contenue dans le dossier :
"preg_match" ca devrait te guider sur la voie ..
$dossier = opendir($folder);
					while ($Fichier = readdir($dossier))
						{
							if ($Fichier != "." && $Fichier != "..")
							{
							
								$nomFichier = $Fichier;
								preg_match("#(.*)_thumb.(JPG|jpg)#", $nomFichier, $matches);
							if($matches[1])
								{
								$thumb = $folder."/".$matches[1]."_thumb.".$matches[2]."";
								$large = $folder."/".$matches[1].".".$matches[2]."";
								$photos .=  "<a href=\"".$large."\" rel=\"lightbox[ref]\"><img src=\"".$thumb."\" hspace=\"0\" vspace=\"10\" border=\"0\"/></a><br>";
								}
								
							}
						}
					closedir($dossier);

par Dom! » 21 avr. 2009, 22:45

aprés avoir testé readdir est du texte et nottament le nom de la photo.

Je ne trouve vraiment pas la solution....... a l'aiiiiiiiiiiiiiiide

par orgerix » 19 avr. 2009, 20:20

Tu peux tester si ce que donne reddir() est un fichier ou non. Si ca n'en est pas, tu l'ouvre et tu le lit et ainsi de suite. Le mieux est de coder une fonction récursive (c'est à dire qu'elle s'appelle elle même)

Tu peux facilemnt voir si ton fichier commence par ce que tu veux grace à la fonction substr()

Selection photos à afficher

par Dom! » 19 avr. 2009, 19:53

Bonsoir tout le monde.
J'utilise ceci pour afficher aléatoirement mes photos.
<?php $path='Photos/content/Saison 2008-2009/PHOTOS DES EQUIPES/';
					$handle=opendir($path);
$count=0;
while ($file = readdir($handle)){
       if (($file != ".") && ($file != "..")) {
            $count++;
       }
}

$alea=rand(1,$count);
rewinddir($handle);
$count=0;

while ($file = readdir($handle)){
       if (($file != ".") && ($file != "..")) {
            $count++;
            if ($count==$alea) {
			$lienphoto = $path;
              echo "<a href=\"$path$file\" target=_blank><img src=\"$path$file\" height=\"80\" title=\"$file\" border=\"0\"></a>";
                break;
                }
       }
}
closedir($handle);  ?>
2 problèmes se posent à moi :

1. Comment afficher le contenu d'un dossier qui lui contient un dossier qui contient des photos ?
2. Je ne veux pas afficher les miniatures contenu dans mon dossier, en fait je ne veux pas afficher les photos commençant par tn_

Merci pour votre aide.