Veritabanında saklanan bir HTML imzasında posta birleştirme efekti yapmak için birden çok değerin yerini bulmak için çalışıyorum.PHP preg_replace beklendiği gibi çalışmıyor
Dize bölümünün endişe duyulmamasını sağlayabilirim, ancak bazı nedenlerden dolayı çıktıda "[" & "]" bırakıyor. şu şekilde görünecektir HTML
Birleştirme etiketler: [ad], [Soyad]
şu şekilde görünecektirOrijinal HTML:
Tür
[ad] [Soyad ilişkin ]
Mailmerge işlevini çalıştırdıktan sonra şu şekilde görünmelidir:
01 peşin yılındapublic 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;
}
Teşekkür:
Tür İşte
Ben şimdiye kadar ile geldim budur ve Im emin mesele küçük bir şey olduğunu
John Smith ilişkin
Ben docs yukarıya bakmadık ('regex'es içinde özel karakterler ve gerektiği normalde [' 've] ancak' değiştirmenizi özgü konuşmak için bile eğer tam anlamıyla kullanılmasını istiyorum), ters eğik çizgi ile öneklenmelidir, '\. –
İlk olarak, bir regex'e ihtiyacınız yok. –