Включить результат цикла Foreach в переменную в PHP? (для функции mail())


Я француз, поэтому, возможно, не очень хорошо говорю по-английски.

Я пытаюсь "поместить" результат цикла foreach в переменную, подобную этой:

$msg = '<html><head>
        <title>Commande de photos</title>
 </head><body>
        <p>Voici la liste des photos demand&eacute;es :<br />
 <ul> HERE I WANT TO "PUT" THE RESULT OF THE FOREACH LOOP</ul>';

Вот мой цикл для каждого:

foreach($tab as $val){
echo('<li>'.$val.'</li>');
}

Затем $msg введите в состав функции mail() вот так:

mail($destinataire,$sujet,$msg,$headers);

Итак, как я могу это сделать, чтобы включить результат foreach в сообщение, потому что у меня уже есть ошибка?

Author: Chuck, 2009-09-09

4 answers

$msg = '<html><head><title>Commande de photos</title></head><body><p>Voici la liste des photos demand&eacute;es :</p><ul>';
foreach($tab as $val){
     $msg .= '<li>' . $val . '</li>';
}
$msg .= '</ul>';
mail($destinataire,$sujet,$msg,$headers);

Хитрость здесь заключается в операторе конкатенации .=. Например:

$x = 'abc';
echo $x; // echoes 'abc'
$x .= 'def';
echo $x; // echoes 'abcdef'
 4
Author: , 2009-09-09 16:24:20

Вот так?

$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&eacute;es :<br />
<ul>'.$list.'</ul>';

mail($destinataire,$sujet,$msg,$headers);
 2
Author: davethegr8, 2009-09-09 16:25:17
ob_start();
// here your loop echo'ing stuff
$content = ob_get_clean();

Смотрите справочные страницы php для получения дополнительной информации о функциях ob_*

 0
Author: p4bl0, 2009-09-09 16:26:26

Не такой уж и ответ - но ответ davethegr8 сработал для меня! Я пытаюсь выполнить свою первую интеграцию системы шаблонов php с использованием Savant3, и это помогло сохранить всю логику отдельно от файла шаблона. Спасибо!

 0
Author: , 2009-09-24 21:19:00