2014-09-01 99 views
1

我使用php的mail()函數發送電子郵件。我的代碼如下:在php mail()中添加字符串「1」

$to  = [email protected]; 
$subject = "Subject of email"; 


ob_start(); 
echo include('emailcontent.php'); 
$message = ob_get_contents(); 
ob_end_clean(); 

$headers = 
'From: Email <[email protected]>' . "\r\n" . 
'Reply-To: Email <[email protected]>' . "\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')中,因爲如果在包含之後向消息添加另一個字符串,那麼在添加之前添加「1」。

在emailcontent.php中不是1或任何。

回答

3
echo include('emailcontent.php'); 

刪除echo。回聲使1在那裏

您可能會問,爲什麼echo在沒有添加到任何位置時將1放在那裏?因爲當你的文件被成功包含時,包含的返回值是TRUE,當你發送到echo時,它會打印1。嘗試

echo 2==2; //1 
+0

完善和感謝您的解釋。沒有想到這一點。 – Nijn 2014-09-01 07:45:25

3

爲什麼你在迴應php頁面?你必須包括頁面一樣,

include('emailcontent.php');

取出echo它是造成1

+0

感謝您的快速響應,非常感謝。 – Nijn 2014-09-01 07:54:26