Inclure le résultat d'une boucle Foreach dans une variable en PHP? (pour la fonction mail ())
Question
Je suis français, donc je ne parle peut-être pas très bien anglais.
J'essaie de "mettre". le résultat d'une boucle foreach dans une variable comme celle-ci:
$msg = '<html><head>
<title>Commande de photos</title>
</head><body>
<p>Voici la liste des photos demandées :<br />
<ul> HERE I WANT TO "PUT" THE RESULT OF THE FOREACH LOOP</ul>';
Voici ma boucle foreach:
foreach($tab as $val){
echo('<li>'.$val.'</li>');
}
Ensuite, le $ msg
entre dans la composition de la fonction mail ()
comme ceci:
mail($destinataire,$sujet,$msg,$headers);
Alors, comment puis-je faire cela pour inclure le résultat de foreach dans un message parce que j'ai déjà un bogue?
La solution
$msg = '<html><head><title>Commande de photos</title></head><body><p>Voici la liste des photos demandées :</p><ul>';
foreach($tab as $val){
$msg .= '<li>' . $val . '</li>';
}
$msg .= '</ul>';
mail($destinataire,$sujet,$msg,$headers);
Le truc ici est l'opérateur de concaténation. =. Par exemple:
$x = 'abc';
echo $x; // echoes 'abc'
$x .= 'def';
echo $x; // echoes 'abcdef'
Autres conseils
Aimez-vous?
$list = '';
foreach($tab as $val){
$list .= '<li>'.$val.'</li>';
}
$msg = '<html><head>
<title>Commande de photos</title>
</head><body>
<p>Voici la liste des photos demandées :<br />
<ul>'.$list.'</ul>';
mail($destinataire,$sujet,$msg,$headers);
ob_start();
// here your loop echo'ing stuff
$content = ob_get_clean();
Voir les pages de manuel php pour plus d'informations sur les fonctions ob_ *
Pas vraiment une réponse - mais la réponse de davethegr8 a fonctionné pour moi! Je suis en train d'assister à ma première intégration système de modèles php avec Savant3 et cela me permet de garder toute la logique séparée du fichier de modèle. Merci!