字符串";1〃;在php-mail()中添加


String "1" gets added in php mail()

我正在使用php的mail()函数发送一封电子邮件。我的代码如下:

$to      = email@email.com;
$subject = "Subject of email";

ob_start();
echo include('emailcontent.php');
$message = ob_get_contents();
ob_end_clean();
$headers = 
'From: Email <email@email.com>' . "'r'n" .
'Reply-To: Email <no-reply@email.com>' . "'r'n" .
"Content-type:text/html;charset=UTF-8" . "'r'n" .
"MIME-Version: 1.0" . "'r'n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

由于某种原因,字符串"1"被添加到消息的末尾。这种情况发生在include('emailcontent.php')中,因为如果我在include之后向消息添加另一个字符串,则在添加之前会添加"1"。

在电子邮件内容中,php不是1或任何东西。

echo include('emailcontent.php');

卸下echo。那个回声把1放在里

你可能会问,为什么echo在没有添加到任何位置的情况下却将1放在那里?因为当您的文件被成功包含时,包含的返回值为TRUE,当您将其发送到echo时,它将打印1。尝试

echo 2==2;   //1

为什么要回显php页面?你必须包括这样的页面,

include('emailcontent.php');

移除导致1的echo