Double tableau php

Eléphanteau du PHP | 34 Messages

07 févr. 2012, 20:41

Bonjour,

Pour afficher des photos je me sert de ce code
<?php
$arrFichier = array();
$i=0;
$directory='images/';
// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($directory)) {
if($dh = opendir($directory)) {
while (($file = readdir($dh)) !== false) {
$extension = pathinfo($directory.$file);
if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
$arrFichier[$i] = $file; //PLace les fichier dans un tableau
$i++;
}
}
}
closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
}
//Initalisation.
if($_GET['index']!=''){
$index = $_GET['index'];
}else{
$index = 0;
}
//Affichage des liens précédent et suivant.
if($index > 0){ //N'affiche pas le boutton au premier
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
}
echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
}
?>
et j'aimerai ajouter du texte sous chaque photos.
Bien-sûr le texte change suivant la photo.

Merci
" Un Homme n'est jamais aussi grand que lorsqu'il se penche pour aider un enfant" ABRAHAM LINCOLN

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 févr. 2012, 22:28

Tu peux faire un tableau de libellé et utiliser le nom de l'image comme clé pour afficher le bon texte :)
$arrTexte = array();
$arrFichier['image1.jpg'] = "blabla";
$arrFichier['image2.jpg'] = "blabla2";

...

echo '<img src="' . $directory . '/' . $arrFichier[$index] . '">'; //Affichage de l'image
echo $arrTexte[$arrFichier[$index]];
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 34 Messages

07 févr. 2012, 22:36

Bonsoir Ryle,

J'adore ce forum.
Vous êtes tous des pros.
Réponses Rapides, bien détaillées.

Je vais tester
et je reviendrai donner le résultat.

Un grand Merci très sincèrement.
" Un Homme n'est jamais aussi grand que lorsqu'il se penche pour aider un enfant" ABRAHAM LINCOLN

Eléphanteau du PHP | 34 Messages

09 févr. 2012, 16:39

Bonjour,

Je viens de tester le code , mais cela m'affiche une erreur

Code : Tout sélectionner

Notice: Undefined index: 001.jpg in C:\wamp\www\Sextan\journeeFemme.php on line 60 Call Stack # Time Memory Function Location 1 0.0008 688128 {main}( ) ..\journeeFemme.php:0
voici mon code complet

<?php
					
						
						
$arrFichier = array();
$i=0;
$directory='Images/Journee_femme/images/';
// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($directory)) {
if($dh = opendir($directory)) {
while (($file = readdir($dh)) !== false) {
$extension = pathinfo($directory.$file);
if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
$arrFichier[$i] = $file; //PLace les fichier dans un tableau

$arrTexte = array();                           //--------------------------------------------------------------------  code ajouté    
$arrFichier['001.jpg'] = "blabla";         //--------------------------------------------------------------------  code ajouté
$arrFichier['002.jpg'] = "blabla2";	//--------------------------------------------------------------------  code ajouté

$i++;
}
}
}
closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
}
//Initalisation.
if($_GET['index']!=''){
$index = $_GET['index'];
}else{
$index = 0;
}
//Affichage des liens précédent et suivant.
if($index > 0){ //N'affiche pas le boutton au premier
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
}
echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
echo $arrTexte[$arrFichier[$index]]; //--------------------------------------------------------------------  code ajouté

if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
}
?>
" Un Homme n'est jamais aussi grand que lorsqu'il se penche pour aider un enfant" ABRAHAM LINCOLN

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 févr. 2012, 20:02

A priori, le code faudrait le mettre avant ou après la boucle while, car ça ne sert à rien de recréer ton tableau à chaque fois :)

C'est laquelle la ligne 60 ?

Pour debugger le plus simple c'est d'afficher les valeurs... au moment où tu affiches l'image regarde ce que contient $index, vérifie qu'il existe bien dans ton tableau $arrFichier. Puis regarde ce que contient $arrFichier[$index] , et contrôle que tu as bien ce même nom comme index dans ton tableau $arrTexte :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 34 Messages

09 févr. 2012, 20:21

Bonsoir Ryle,

Je vais les changements et les tests.

Merci
" Un Homme n'est jamais aussi grand que lorsqu'il se penche pour aider un enfant" ABRAHAM LINCOLN

Eléphanteau du PHP | 34 Messages

09 févr. 2012, 20:31

Bonsoir Ryle,

La ligne 60 c'est
echo $arrTexte[$arrFichier[$index]];
merci
" Un Homme n'est jamais aussi grand que lorsqu'il se penche pour aider un enfant" ABRAHAM LINCOLN