2013-08-30 80 views
0

我有一個表單。我使用「發佈」方法發送並通過電子郵件發送給註冊的多個人。然後,電子郵件的$正文基於模板。沒有數據庫,沒有類,簡單的形式。是的,我已經讀過這些,他們都在那裏,我不能把它放在一起,與這種情況有關。從文本文件獲取內容並替換關鍵字PHP

「email_template.txt」 應該是這樣的文字:

Hello #firstname# #lastname#. Thank you for registering! Your registered email is #email# 

看起來像這樣在處理由PHP

Hello **John Doe**. Thank you registering! Your registered email is **[email protected]**. 

在我的PHP我有類似:

<?php 
//form and validation 
$firstname = "John"; // inputed name on the form, let say 
$lastname = "Doe"; // inputed last name 
$email = "example"; // inputed email 

//email message 
$body = ... some type of a get_file_content.... 
mail($_POST['email'], 'Party Invitation', $body, 'From: [email protected]'); 
?> 

其中$ body是通過此PHP表單提交給註冊人的電子郵件。

回答

0

的sprintf將工作良好

您的模板可以是:

你好%s%S。感謝您註冊!您註冊的郵件爲%s

$身體= sprintf的($ fileContents,$名字,姓氏$,$電子郵件);

str_replace(),幾乎找到替代。

$ body =「Hello#firstname##lastname#。謝謝註冊!您的註冊郵箱是#email#」;

$體= str_replace函數( 「#姓名#」,$姓名,$體);

$體= str_replace函數( 「#姓氏#」,$姓氏,$體); $ body = str_replace(「#email#」,$ email,$ body); $ body = str_replace(「#email#」,$ email,$ body);

+0

這會不會以某種方式工作.... $身體=的file_get_contents(email_template.txt); $ body = str_replace(「#firstname#」,$ firstname,$ body); $ body = str_replace(「#lastname#」,$ lastname,$ body); $ body = str_replace(「#email#」,$ email,$ body); – mythoslife

+0

沒關係,我明白了! – mythoslife

+0

好的,你找到了引號:) – surivitna