我正在尝试运行查找替换多个值,以对存储在数据库中的HTML签名执行邮件合并效果。
我可以毫无后顾之忧地取代琴弦部分,但出于某种原因它会离开“[”& “”在输出中落后。
HTML中的合并标记如下所示:[FirstName],[LastName]
原始HTML看起来像这样:
亲切的问候
[FirstName] [LastName]
运行mailmerge函数后,它应如下所示:
亲切的问候
John Smith
到目前为止,我已经提出了这个问题,我确信这个问题很小:
public function merge_user_signature() {
$user = $this->get_user_by_id();
//spit_out($user);
$authorisedMergeTags = array (
"[FirstName]" => $user->firstName,
"[LastName]" => $user->lastName
);
$keys = array_keys($authorisedMergeTags);
$values = array_values($authorisedMergeTags);
$html = $this->get_user_signature();
$mergedSignature = preg_replace($keys, array_values($authorisedMergeTags), $html);
return $mergedSignature;
}
提前致谢
答案 0 :(得分:1)
您不需要使用正则表达式处理文字字符串(无论情况如何):
return strtr($html, $authorisedMergeTags);