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

StackOverflow https://stackoverflow.com/questions/1400669

Вопрос

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

Я пытаюсь " поставить " результат цикла 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:

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

Затем $ msg введите в состав функции mail () следующим образом:

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

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

Это было полезно?

Решение

$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'

Другие советы

Как так?

$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);
ob_start();
// here your loop echo'ing stuff
$content = ob_get_clean();

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top