我允许在我的软件中发送的电子邮件中使用自定义字段。我使用 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 属性最终出现在我的自定义字段中,它仍然会替换它?
谢谢
本