Page 1 sur 3
affichage photos
Posté : 08 juil. 2005, 09:18
par FAbrice
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
Posté : 08 juil. 2005, 09:23
par ouckileou
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
Posté : 11 juil. 2005, 01:38
par kmeleon
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
Allez bonne soirée

Posté : 11 juil. 2005, 08:38
par FAbrice
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!!!

);
Merci BCq;
FAB
Posté : 11 juil. 2005, 09:59
par FAbrice
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
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
Posté : 11 juil. 2005, 10:14
par zeus
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 :
$rep = "dossier_photo/"
Mais si
Code : Tout sélectionner
script
|- index.php
|-dossier_photo
| |-dossier1
| | |-photo1
| | |-photo2
alors
$rep = "dossier_photo/dossier1";
Posté : 11 juil. 2005, 10:31
par FAbrice
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
Posté : 11 juil. 2005, 11:52
par kmeleon
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
...
Bonne journée

Posté : 11 juil. 2005, 18:12
par FAbrice
Ayé, ca marche
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

, 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

. 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
Posté : 11 juil. 2005, 18:30
par kmeleon
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

):
<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à !!!
Posté : 11 juil. 2005, 23:04
par FAbrice
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???
merci bcq,
FAb
Posté : 11 juil. 2005, 23:17
par kmeleon
echo "<td align='center'><img src=\"".$rep.$image."\"></td>";
Il suffit de rajouter un point avant $rep
Désolé mais je fesait ca rapidement
Bonne soirée
Posté : 11 juil. 2005, 23:23
par FAbrice
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
Posté : 11 juil. 2005, 23:31
par kmeleon
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é...
Posté : 12 juil. 2005, 09:08
par FAbrice
salut,
un enorme progres!!!! il n'y a plus de message d'erreur

mais les photos ne s'affiche pas, j'ai des petits carrés blancs avec une belle croix rouge dedans

.
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