PHP无法在html电子邮件中呈现

时间:2013-08-22 19:16:40

标签: php html email

我无法弄清楚为什么有些php无法在我正在尝试构建的HTMl电子邮件中正确呈现。 代码(大多数html元素已被删除):

$messaget = "
<html>
<head>
<title>Your Loan Information</title>
<style type=text/css>
table {border: 0px solid white}
#top {width:590px; margin-left:5px;}
#foot {width:540px; margin-left:10px;}

#left {width:560px; margin-left:20px;}
h1 {margin-left:0px; }
body,td,th {
font-family:Arial, Helvetica, sans-serif;
    font-size: 13px;
}
td, tr {border: 0}
</style>
</head>
<body>

    <p>Thank you, $custfirst $custlast
    <br/>Customer Id: $custid,</p>

    <h3>What we have:</h3>

    <strong>What We Still Need: </strong><br/>
foreach ($needed as &$value) {
    $value<br/>
}'



</body>
</html>

第一个变量,谢谢你,$ custfirst $ custlast,正在运行。 当我发送电子邮件时,我看到“谢谢你,John Smith”

但是

foreach ($needed as &$value) {
        $value<br/>
    }

不执行php,而是精简显示 “foreach($需要&amp; $ value){         $值
    }” 任何人都可以帮我找出原因吗?

3 个答案:

答案 0 :(得分:2)

您不能在字符串中使用逻辑调用。您需要在变量中准备字符串并插入它。例如:

$string = '';
foreach ($needed as &$value) {
    $string .= $value.'<br>';
}

然后在你的字符串中

$message = "... $string ...";

答案 1 :(得分:0)

将字符串追加到变量中,而不是在字符串中使用逻辑调用。

<?php
  $messaget = null;
  $messaget .= '<html><head>...';
  foreach ($needed as &$value) {
      $messaget .= $value.'<br>';
  }
  $messaget .= '...</body></html>';
?>

答案 2 :(得分:0)

使用以下命令创建文件my_html.php:

<html>
<head>
<title>Your Loan Information</title>
<style type=text/css>
table {border: 0px solid white}
#top {width:590px; margin-left:5px;}
#foot {width:540px; margin-left:10px;}

#left {width:560px; margin-left:20px;}
h1 {margin-left:0px; }
body,td,th {
font-family:Arial, Helvetica, sans-serif;
    font-size: 13px;
}
td, tr {border: 0}
</style>
</head>
<body>

    <p>Thank you, $custfirst $custlast
    <br/>Customer Id: $custid,</p>

    <h3>What we have:</h3>

    <strong>What We Still Need: </strong><br/>
<?php foreach ($needed as &$value): ?>
   echo $value . '<br/>';
<?php endforeach; ?>
</body>
</html>

在其他文件中包含此文件my_html.php。

我希望能帮助你。