Combiner deux boucles en un résultat
Actarus500
Messages postés
1
Statut
Membre
-
Doctor C Messages postés 630 Date d'inscription Statut Membre Dernière intervention -
Doctor C Messages postés 630 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:
et pour lire mon fichier *.txt ceci:
Maintenant je ne sais pas comment faire pour combiner les deux résultats afin d'obtenir quelque chose du genre:
D'avance je vous remercie pour votre aide !
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
-
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 -
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";