0

我需要帮助,我需要通过 php 邮件功能发送邮件,所以在消息字段中我应该制作一个 HTML 文本,但是在这个文本中我有循环来计算一个数组以用它的数据回显表,但是出了点问题,是不是任何人都知道为什么它不起作用;不起作用???

public function sendmail($arr){
    $to = $_SESSION['email'];
    $subject = 'کارت شارژ';
    $message = '<html>
                    <head>
                      <title>کد شارژ خریداری شده شما</title>
                    </head>
                    <body>
                      <p>از خرید شما متشکریم</p>
                      <table>
                        <tr>
                          <th>#شماره</th><th>کد شارژ</th>
                        </tr>
                        '+ 
                        foreach ($arr as $i){
                            echo '<tr><td>'.$i.'</td></tr>';
                        }
                            +'
                      </table>
                    </body>
                </html>';
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

    $headers .= 'To: '.$_SESSION['phone'].' <'.$to.'>' . "\r\n";
    $headers .= 'From: hameja123 <hameja123@hameja123.ir>' . "\r\n";
    mail($to, $subject, $message, $headers);
}
4

3 回答 3

2

您不能只是将代码拼接成这样的字符串。此外,+用于添加,而不是连接。

尝试预先计算行:

$rows = "";
foreach($arr as $i) $rows .= "<tr><td>".$i."</td></tr>";

然后你可以将它连接起来:

"...... ".$rows." .......";
于 2013-08-17T15:39:18.773 回答
0

不使用

foreach ($arr as $i){
                            echo '<tr><td>'.$i.'</td></tr>';
                        }

在“$message =”语句中。

相反,请先执行此操作 $message = '<html>

$string='';
foreach($arr as $i)
$string = $string.'<tr><td>$i</td><tr>';

现在,在 $message= 中,

做这个:

<tr>
                          <th>#شماره</th><th>کد شارژ</th>
                        </tr>
                        $string
                      </table>
于 2013-08-17T15:40:42.197 回答
0

将部分代码更改为:

$data = '';
foreach ($arr as $i){
    $data .= '<tr><td>'.$i.'</td></tr>';
}
$message = '<html>
                <head>
                  <title>کد شارژ خریداری شده شما</title>
                </head>
                <body>
                  <p>از خرید شما متشکریم</p>
                  <table>
                    <tr>
                      <th>#شماره</th><th>کد شارژ</th>
                    </tr>
                    '.$data.'
                  </table>
                </body>
            </html>';

您不能插入带有字符串的 foreach 内联。

于 2013-08-17T15:39:01.013 回答