ソフトウェアで送信される電子メールのカスタム フィールドを許可します。私は CKEditor を使用して、彼らが電子メールを作成およびフォーマットできるようにしています。カスタム フィールドを含む HTML 形式の電子メールの例は次のとおりです。
<p>%firstname% さん、こんにちは</p>
<p>何とか何とか.....</p>
次のコードを使用して、これらのフィールドを検出して置き換えます。
preg_match_all('`\%(?![0-9])([a-zA-Z0-9_-]+)\%`', $message, $contact_fields);
if (!empty($contact_fields[1])) {
foreach($contact_fields[1] AS $contact_field) {
$replace_width = 'do the magic here';
$message = str_replace('%' . $contact_field . '%', $replace_with, $message);
}
}
問題は、CKEditor がこれを行う場合があることです。
<p>%<span>名</span>%さん、こんにちは</p>
<p>何とか何とか.....</p>
したがって、フィールドを置き換えることにはなりません。私のユーザーは、なぜこれが HTML コードを表示できないのか疑問に思っています。
この正規表現を機能させて、カスタムフィールド内で他の HTML 属性が終了した場合でも、それを置き換える方法についての提案はありますか?
ありがとう
ベン