2010-09-28 4 views
0

Salut mes amis, j'ai créé un système de newsletter. Dans lequel je veux envoyer le nom de la personne comme taper Bonjour% nom d'utilisateur% en forme html, qui proviendra de base de données $ nom d'utilisateur. Donc, quand la personne reçoit un email, elle aura "Hello Falana".comment analyser la variable php avec html?

Merci

Répondre

3

Le concept est appelé mail merge. Vous devrez écrire un script pour le faire. Voici comment cela fonctionne: (son pour vous d'obtenir une idée approximative, pas un code)

$emailBody = " Hello %USERNAME%"; 


foreach($members as $member_information){ 
$emailBody = str_replace('%USERNAME%',$member_information['user_name'],$emailBody); 

sendMail($member_information['email_address'],$emailBody); 
} 
+0

foreach ($ membres en tant que membre $) serait plus exact: D IMHO – Hannes

+0

;) hehe .. voulu être plus précis, donc je suis en train d'écrire un code de type pseudo, ce qui ne fonctionnait pas – Stewie

1

vous pouvez aller avec str_replace:

$html = "Hello, %username% ....."; 
$html = str_replace("%username%", $username, $html); 

où le nom d'utilisateur $ contient le nom réel de le db.

+0

Pensez que cela devrait être: 'str_replace ("% username% "' (sinon le nom d'utilisateur de tout le monde se terminera en%) – Rudu

+0

@Rudu oui, vous avez raison, vous le corrigerez, juste une faute de frappe – Tokk

0

Si vous avez plusieurs recherche/remplacement, regardez dans la fonction preg_replace().

$data = 'Find1/Find2/Find3'; 

$patterns[0] = '/Find1/'; 
$patterns[1] = '/Find2/'; 
$patterns[2] = '/Find3/'; 

$replacements[0] = 'Replace1'; 
$replacements[1] = 'Replace2'; 
$replacements[2] = 'Replace3'; 

$data = preg_replace($patterns, $replacements, $data); 
+0

str_replace ($ patterns, $ changes, $ data) fonctionnera de la même façon (sans les délimiteurs dans $ patterns, bien sûr). – GZipp