Combiner deux boucles en un résultat

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 !

2 réponses

  1. 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
    1. 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