在 PHP 变量中插入 HTML 标记


Inserting HTML tags inside a PHP variable

我有以下代码:

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标签吗?

非常感谢

您必须将电子邮件定义为"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);

它会给出一个错误,因为您在字符串中使用了特殊字符。 使用函数htmlspecialchars,您可以将它们转换为html,然后它不会有问题。HTMLspecialchars将逃脱<并在您的情况下>

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

默认情况下,电子邮件以文本电子邮件的形式发送。

要使电子邮件客户端将电子邮件正文解释为 HTML,您需要以正确的格式传递正文,该格式由"内容类型"字段指示:

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

您可以在 PHP 的 mail() 函数的附加标头参数中插入此字段。

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