Combiner deux boucles en un résultat

Actarus500 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Doctor C Messages postés 627 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je vous expose mon problème:

J'ai un dossier image dont je liste le contenu et un fichier texte contenant ligne par ligne les titres de mes images que j'aimerai utiliser comme titre pour mon title="..." dans ma balise <img>.

Pour le code qui liste le contenu du rép. dans l'ordre croissant et fonctionne très bien j'utilise ceci:


$nomRepertoire = "../img/portraits/";

$listFichier = array() ;

if(is_dir($nomRepertoire) ) {

$dossier = opendir($nomRepertoire);

while( $fichier = readdir($dossier) ) {

if($fichier != "." AND $fichier != ".." AND stristr($fichier,'.jpg')) {

$listFichier[] = $fichier;
}
}

closedir($dossier);

natsort($listFichier);


$p = 0;
foreach($listFichier as $fichier) {
if (++$p==1) continue;
echo '<a href="'.$nomRepertoire.$fichier.'" title="test"></a>';
}
}
else {
echo "repertoire inexistant";
}
?>

et pour lire mon fichier *.txt ceci:


$noms = file("docs/personnes.txt");

$total = count($noms);

for($i = 0; $i < $total; $i++)
{

echo $noms[$i];

}

Maintenant je ne sais pas comment faire pour combiner les deux résultats afin d'obtenir quelque chose du genre:


echo '<a href="'.$nomRepertoire.$fichier.'" title="'.$noms.'"></a>'

D'avance je vous remercie pour votre aide !



A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

En supposant que les titres des images soit enregistrés dans le même ordre que les images de ton dossier, tu peux faire quelque chose comme ceci :


$noms = file("docs/personnes.txt");

$p = 0;
foreach($listFichier as $fichier) {
if (++$p==1) continue;
echo '<a href="'.$nomRepertoire.$fichier.'" title="' . $noms[$p - 1] . '"></a>';
}


Ici je récupère l'élément [$p - 1] de mon tableau car tu incrémentes $p au début de la boucle, à toi de vérifier si la correspondance est correcte (ton tableau de nom commence à l'index 0).
D'ailleurs je ne comprend pas pourquoi tu passes le premier tour de boucle, mais il doit y avoir une bonne raison.

Bonne journée
0
Doctor C Messages postés 627 Date d'inscription   Statut Membre Dernière intervention   399
 
Bonjour,

Je ne peux pas le tester mais voici l'idée:

//Obtenir les noms des images
$noms = file("docs/personnes.txt");

//Obtenir les images
$nomRepertoire = "../img/portraits/";
$listFichier = array();

if(is_dir($nomRepertoire) ){

$dossier = opendir($nomRepertoire);

while (false !== ($fichier = readdir($dossier))){

if($fichier != "." AND $fichier != ".." AND stristr($fichier,'.jpg')){
$listFichier[] = $fichier;
}
}

closedir($dossier);
natsort($listFichier); //Tri de la liste

//On assume que les deux listes sont correctement triées

$p = 0;
foreach($listFichier as $fichier) {
echo '<a href="'.$nomRepertoire.$fichier.'" title="'.$noms[$p].'"></a>';
$p++;
}
}
else{
echo "repertoire inexistant";
}

En souhaitant que ça fonctionne!


Echo "Lima Mike Alfa";
0