affichage photos

Eléphant du PHP | 289 Messages

08 juil. 2005, 09:18

Bonjour,

Je me suis pose un question cette nuit:
Est ce qu’il est possible d’afficher automatiquement les images d’un dossier ?

Je m’explique :
Je dispose d’appareils, dont je prends régulièrement des photos (ex ttes les semaines). Chaque appareil a son dossier et les photos concernant un appareil sont soigneusement rangées dans le dossier de ce dernier. Je voulais donc savoir s’il existait un moyen automatique d’afficher toutes les photos d’un repertoire, sachant que le nombre des photos augmente chaque semaine.

Merci de votre réponse,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

08 juil. 2005, 09:23

oui c'est tout à fait possible en PHP

regarde du coté des fonctions de dossiers, tu as de quoi à parcourir un répertoire et créer le code HTML automatiquement pour afficher tes photos

=> http://fr.php.net/manual/fr/ref.dir.php

si tu ne veux pas développer il y a aussi des galeries toutes faites

Eléphant du PHP | 132 Messages

11 juil. 2005, 01:38

Allez je suis gentil je te fait la source (quelle bonté !):
// Ton répertoire
$rep = "repertoire/";
// Ouvre le répertoire $rep
$dir = opendir($rep);

// Tant qu'on peut lire les fichiers du répertoire $rep
while ($image = readdir($dir)) {

        // Si $rep.$image est un fichier
	if(is_file($rep.$image)) {

// Affiche l'image portant le nom $image
echo "<img src=\"".$image."\"><br>";

	}
}
Si tu veux lire plusieurs répertoire:
// Ton répertoire 1
$rep1 = "repertoire1/";
// Ouvre le répertoire $rep1
$dir2 = opendir($rep2);

// Ton répertoire 2
$rep2 = "repertoire2/";
// Ouvre le répertoire $rep2
$dir2 = opendir($rep2);

// Tant qu'on peut lire les fichiers du répertoire $rep1
while ($image1 = readdir($dir1)) {

        // Si $rep1.$image1 est un fichier
	if(is_file($rep1.$image1)) {

// Affiche l'image portant le nom $image1
echo "<img src=\"".$image1."\"><br>";

	}
}

// Tant qu'on peut lire les fichiers du répertoire $rep2
while ($image2 = readdir($dir2)) {

        // Si $rep2.$image2 est un fichier
	if(is_file($rep2.$image2)) {

// Affiche l'image portant le nom $image2
echo "<img src=\"".$image2."\"><br>";

	}
}
Voilà, ensuite tu peux mettre tout ca sous forme de tableau en insérant du html dans le echo(), histoire d'améliorer le design :P

Allez bonne soirée :wink:
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 289 Messages

11 juil. 2005, 08:38

Alut;

et bien merci bcq; j'ai passé mon WE a essayer de comprendre mais la, ca devrait etre plus simple!!!

je regarde ca tout de suite (mais ss garantie de résultat!!! :oops: );

Merci BCq;
FAB
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Eléphant du PHP | 289 Messages

11 juil. 2005, 09:59

Re :=)

je viens de placer ton code dans une page php, entre les balises du meme genre.

g spécifié mon repertoire mais aucune image n'apparait :oops:

g vu que tu demandes de specifier le nom d'une image??? est ce que cela veut dire qu'il faut donner le nom de chaque image a afficher???

est ce que tu pourrais m'éclairer???
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 10:14

Quand il marque ça :
// Ton répertoire
$rep = "repertoire/"; 
Soit tu spécifie un répertoire qui est dans l'arborescence de ton fichier php, soit tu donne une url complete

exemple :

Code : Tout sélectionner

script |- index.php |-dossier_photo | |-photo1 | |-photo2
$rep = "dossier_photo/"
Mais si

Code : Tout sélectionner

script |- index.php |-dossier_photo | |-dossier1 | | |-photo1 | | |-photo2
alors
$rep = "dossier_photo/dossier1";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 289 Messages

11 juil. 2005, 10:31

realut,

ben ca ne marche toujours pas :(

Voila ce que j'ai mis comme répertoire:
<body>
<?php 
// Ton répertoire 
$rep = "Thermique/"; 
// Ouvre le répertoire $rep 
$dir = opendir($rep); 

// Tant qu'on peut lire les fichiers du répertoire $rep 
while ($image = readdir($dir)) { 

        // Si $rep.$image est un fichier 
    if(is_file($rep.$image)) { 

// Affiche l'image portant le nom $image 
echo "<img src=\"".$image."\"><br>"; 

    } 
} 

?>
</body>
Mes images se trouvent dans le dossier www/Thermique.

voici ce qu'est affiché dans la barre des adresse d'explorer:
C:\PHP\EasyPHP1-7\www\Thermique\test_image.php

et ce qui est affiché a l'ecran:
"; } } ?>

est ce que vous voyez d'ou peut venir le pb???

merci de votre aide,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Eléphant du PHP | 132 Messages

11 juil. 2005, 11:52

Oula excuse moi j'ai juste oublié de dire que l'image se trouve dans $rep:
// Ton répertoire
$rep = "repertoire/";
// Ouvre le répertoire $rep
$dir = opendir($rep);

// Tant qu'on peut lire les fichiers du répertoire $rep
while ($image = readdir($dir)) {

        // Si $rep.$image est un fichier
    if(is_file($rep.$image)) {

// Affiche l'image portant le nom $image
echo "<img src=\""$rep.$image."\"><br>"; // <= Ici ($rep)

    }
}
Mais ce n'est pas normal qu'il t'affiche

Code : Tout sélectionner

"; } } ?>
...

Bonne journée :wink:
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 289 Messages

11 juil. 2005, 18:12

Ayé, ca marche :lol:

en fait,le chemin du repertoir doit etre de la forme:
<?php 
// Ton répertoire 
$rep = ".../TCS/images/"; 
// Ouvre le répertoire $rep 
$dir = opendir($rep); 
merci bcq!!!

tiens, tant que l'on y est :wink: , tu me disais su'il etait possible de mettre ca dans un tableau. tu fais ca comment car actuellement, toutes mes images sont les unes en dessous des autres :shock: . par exemple un tableau avec 5 colonnes et dont le nombre de ligne dépend du nombre d'image (7 images=2lignes, 11 images="lignes, ...).

merci bcq,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Eléphant du PHP | 132 Messages

11 juil. 2005, 18:30

C'est très simple, tu crée un tableau comme si tu fesait une page HTML et tu remplit les cases avec le code php:
(Je fait ca rapidement désolé pour le design :roll: ):
<table align="center">
<?
// Ton répertoire
$rep = "repertoire/";
// Ouvre le répertoire $rep
$dir = opendir($rep);

// Tant qu'on peut lire les fichiers du répertoire $rep
while ($image = readdir($dir)) {

    // Si $rep.$image est un fichier
    if(is_file($rep.$image)) {
    	if ($nb == 4){
    		echo "<tr>";
    		$yes = 1;
    	}
			// Affiche l'image portant le nom $image
			echo "<td align='center'><img src=\""$rep.$image."\"></td>";
			$nb = $nb+1;
			if ($yes == 1){
				echo "</tr>";
				$nb = 0;
			}
    }
}
?>
</table>
En gros il regarde si $nb est égal à 4 (tu peux changer de nombre, c'est le nombre de colonnes dans le tableau) pour changer de ligne. Il ajoute 1 à $nb à chaque affichage et le réinitialise à chaque fin de <tr></tr>.

Voilà !!!
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 289 Messages

11 juil. 2005, 23:04

bonsoir,

je viens d'essayer la modif. voici ce que j'ai comme code:
<body>
<table align="center"> 
<? 
// Ton répertoire 
$rep = ".../TCS/images/"; 
// Ouvre le répertoire $rep 
$dir = opendir($rep); 

// Tant qu'on peut lire les fichiers du répertoire $rep 
while ($image = readdir($dir)) { 

    // Si $rep.$image est un fichier 
    if(is_file($rep.$image)) { 
        if ($nb == 4){ 
            echo "<tr>"; 
            $yes = 1; 
        } 
            // Affiche l'image portant le nom $image 
            echo "<td align='center'><img src=\""$rep.$image."\"></td>"; 
            $nb = $nb+1; 
            if ($yes == 1){ 
                echo "</tr>"; 
                $nb = 0; 
            } 
    } 
} 
?> 
</table>
</body>
et le message d'erreur
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in c:\php\easyphp1-7\www\tcs\testimage.php on line 25
la ligne 25 correspond à
            echo "<td align='center'><img src=\""$rep.$image."\"></td>"; 
est ce que tu vois doit ca peut provenir??? :oops:

merci bcq,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Eléphant du PHP | 132 Messages

11 juil. 2005, 23:17

echo "<td align='center'><img src=\"".$rep.$image."\"></td>";
Il suffit de rajouter un point avant $rep :wink:
Désolé mais je fesait ca rapidement :?

Bonne soirée
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 289 Messages

11 juil. 2005, 23:23

re :=)

ben il manquait bien un point mais maintenant g tout plein de nouveau messages :?

Code : Tout sélectionner

Notice: Undefined variable: nb in c:\php\easyphp1-7\www\tcs\testimage.php on line 20 Notice: Undefined variable: nb in c:\php\easyphp1-7\www\tcs\testimage.php on line 26 Notice: Undefined variable: yes in c:\php\easyphp1-7\www\tcs\testimage.php on line 27 Notice: Undefined variable: yes in c:\php\easyphp1-7\www\tcs\testimage.php on line 27 Notice: Undefined variable: yes in c:\php\easyphp1-7\www\tcs\testimage.php on line 27 Notice: Undefined variable: yes in c:\php\easyphp1-7\www\tcs\testimage.php on line 27
une idée chef???

FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Eléphant du PHP | 132 Messages

11 juil. 2005, 23:31

Alala !!! lol:
<body>
<table align="center">
<?
// Ton répertoire
$rep = ".../TCS/images/";
// Ouvre le répertoire $rep
$dir = opendir($rep);
$nb = 0;

// Tant qu'on peut lire les fichiers du répertoire $rep
while ($image = readdir($dir)) {

    // Si $rep.$image est un fichier
    if(is_file($rep.$image)) {
        if ($nb == 4){
            echo "<tr>";
            $yes = 1;
        } else {
            $yes = 0;
        }
            // Affiche l'image portant le nom $image
            echo "<td align='center'><img src=\""$rep.$image."\"></td>";
            $nb = $nb+1;
            if ($yes == 1){
                echo "</tr>";
                $nb = 0;
            }
    }
}
?>
</table>
</body>
Le $yes n'était pas défini si pas égal à 4 (rajout du else), et $nb pas défini avant le while ](*,) . Désolé...
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 289 Messages

12 juil. 2005, 09:08

salut,

un enorme progres!!!! il n'y a plus de message d'erreur :lol: mais les photos ne s'affiche pas, j'ai des petits carrés blancs avec une belle croix rouge dedans :x .

juste pour infos, dans le code précédent, tu as oublié de remettre le . devant $rep 8)

tu vois ou se trouve le pb???

merci bcq,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)