2010-09-28 93 views
0

嗨,朋友,我創建了通訊系統。我想在其中發送人名,例如以html格式輸入Hello%username%,這將來自數據庫$ username。所以當這個人得到電子郵件時,他會有「你好Falana」。如何用html解析php變量?

感謝

回答

3

這個概念被稱爲mail merge.你將不得不編寫一個腳本來做到這一點。 這是它是如何工作的:(它讓你得到一個粗略的想法,而不是代碼)

$emailBody = " Hello %USERNAME%"; 


foreach($members as $member_information){ 
$emailBody = str_replace('%USERNAME%',$member_information['user_name'],$emailBody); 

sendMail($member_information['email_address'],$emailBody); 
} 
+0

的foreach($成員$成員)會更正確:d恕我直言 – Hannes 2010-09-28 15:15:04

+0

;)嘿嘿..想更具體,所以我想寫一個僞類型代碼,沒有工作 – Stewie 2010-09-28 15:36:02

1

你可以用str_replace函數去:

$html = "Hello, %username% ....."; 
$html = str_replace("%username%", $username, $html); 

其中$用戶名包含來自真實姓名分貝。

+0

認爲應該是:'str_replace(「%username%」'(否則每個人的用戶名將以%結尾) – Rudu 2010-09-28 15:10:28

+0

@Rudu是的,你是對的,會糾正它,只是一個錯字 – Tokk 2010-09-28 15:12:06

0

如果您有多個查找/替換查看preg_replace()函數。

$data = 'Find1/Find2/Find3'; 

$patterns[0] = '/Find1/'; 
$patterns[1] = '/Find2/'; 
$patterns[2] = '/Find3/'; 

$replacements[0] = 'Replace1'; 
$replacements[1] = 'Replace2'; 
$replacements[2] = 'Replace3'; 

$data = preg_replace($patterns, $replacements, $data); 
+0

str_replace($ patterns,$ replacementments,$ data );將以相同的方式工作(當然,不包括$模式中的分隔符)。 – GZipp 2010-09-28 16:24:19