在PHP变量中插入HTML标记

时间:2013-09-17 13:41:27

标签: php html

我有以下代码:

function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".'<strong>'.clean_string($cname).'</strong>'."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";

此表格随后发送我的电子邮件,我希望电子邮件的第一行是:

名字:输入名称

但我得到的是:

名字:<strong>输入名称</strong>

知道为什么html标签不被理解?

非常感谢

3 个答案:

答案 0 :(得分:3)

您必须将电子邮件定义为“HTML”:

 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

 // Send...
 mail($to, $subject, $message, $headers);

答案 1 :(得分:0)

它会出现错误,因为您在字符串中使用了特殊字符。使用函数htmlspecialchars你可以将它们转换为html然后它将没有问题。 htmlspecialchars将逃脱&lt;和&gt;在你的情况下

更多信息可以在php文档中找到 http://fi2.php.net/manual/en/function.htmlspecialchars.php

答案 2 :(得分:0)

默认情况下,电子邮件将作为文本电子邮件发送。

要使电子邮件客户端将电子邮件正文解释为HTML,您需要以正确的格式提供正文,这由 Content-Type 字段指示:

Content-Type: text/html; charset=iso-8859-1

您可以在PHP mail() function其他标题参数中插入此字段。

请参阅上面链接中有关如何使用PHP发送HTML电子邮件的示例#4。