我使用帶有動態body字段的郵件,因此admin用戶可以構建它自己的BODY。但在身體上我需要有一些變數。管理員用戶的輸入的
示例:從[公司], 感謝用於登記
本文
尊敬的[名稱]將在表中插入。但是現在我想用這個輸入來構建一個自動郵件。所以$正文的內容應該是:
從$公司親愛的$名稱, 感謝您的註冊
這是我的代碼:
$inserted_text = addslashes($_POST['inserted_text']); $patterns = array(); $patterns[0] = '/[name]/'; $patterns[1] = '/[company]/'; $replacements = array(); $replacements[1] = '$name'; $replacements[0] = '$company'; $inserted_text_dynamic = (preg_replace($patterns, $replacements, $inserted_text)); $body = <html><head>...</head><body> $inserted_text_dynamic </body> mail($to, $subject, $body, $headers);
但產量不順心?如何在我的$ body中設置$ name等內容?
正則表達式'/ [name]// [company] /'可能沒有達到你期望的效果。您需要轉義方括號,否則它們是正則表達式字符類。 '/ \ [name \] /' – 2014-10-16 15:15:25
您的模式與您所期望的不符。你會有更好的結果引用它。此外,你的索引是混合的。你可能會考慮使用模板語言來處理這樣的事情。 – 2014-10-16 15:16:06
我不需要在這裏使用'preg_replace()' - 普通舊['str_replace()'](http://us2.php.net/manual/en/function.str-replace.php)支持數組參數,更適合用於像'[name]'這樣的靜態替換。 – 2014-10-16 15:17:05