RE: [PHP] email templates and str_replace
> Richard, > The problem is with the str_replace()s. Consider the following: > > $myvar = 'this is a var.'; > $mytext = str_replace('is', 'is not', $myvar); > ?> > > At this point $myvar still equals 'this is a var.' but $mytext is 'this is > not a var.' $myvar hasn't been modfified by the str_replace so any > additional str_replace()s after it will not have a cumlative effect. Actually, wouldn't the string then be equal to 'this not is not a var.' ?? - Brian -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
RE: [PHP] email templates and str_replace
Richard, The problem is with the str_replace()s. Consider the following: At this point $myvar still equals 'this is a var.' but $mytext is 'this is not a var.' $myvar hasn't been modfified by the str_replace so any additional str_replace()s after it will not have a cumlative effect. Something like the above would have the effect you're looking for. -- Rich Cavanaugh CTO, EnSpot.com -Original Message- From: Richard Kurth [mailto:[EMAIL PROTECTED]] Sent: Wednesday, June 20, 2001 4:32 AM To: [EMAIL PROTECTED] Subject: [PHP] email templates and str_replace I am trying to set up a template for an email program below you will see the test program the $mail_template is pulled from a database that is pre saved when it is saved the Placeholders are filled in using str_replace. that is what I want it to do. But it does not work. What am I missing hear. $mail_template= " Web Hosting At ##hostdomain## Dear ##fullname## Your webhosting account has been created. Please use the following data to log in to ##domain## Domain:##domain## IP-Address: ##ip## Username: ##username## Password: ##password## Mysql Database: ##userdatabase## Mysql Username: ##newuser## Mysql Password: ##newuserpass## Thanks for choosing ##hostdomain## Any Questions e-mail ##sales##@##hostdomain## "; /* message*/ //$mail_template = $message; $fullname="Richard Kurth"; $email="[EMAIL PROTECTED]"; $hostdomain="northwesthost.com"; $hostname="www"; $domain="twohot"; $tld=".com"; $baseip="234.444.45.444"; $username="rkurth"; $password="boat"; $userdatabase="twohot"; $newuser="twohot"; $newuserpass="twohot"; $sales="sales"; $domainname=$hostname . "." . $domain . $tld; $mail_content = str_replace('##fullname##',$fullname,$mail_template); $mail_content = str_replace('##email##',$email,$mail_template); $mail_content = str_replace('##domain##',$domainname,$mail_template); $mail_content = str_replace('##ip##',$baseip,$mail_template); $mail_content = str_replace('##username##',$username,$mail_template); $mail_content = str_replace('##password##',$password,$mail_template); $mail_content = str_replace('##userdatabase##',$userdatabase,$mail_template); $mail_content = str_replace('##newuser##',$newuser,$mail_template); $mail_content = str_replace('##newuserpass##',$newuserpass,$mail_template); $mail_content = str_replace('##hostdomain##',$hostdomain,$mail_template); $mail_content = str_replace('##sales##',$sales,$mail_template); /* and now mail it */ /* recipients */ $recipient = "$fullname <$email>" ; //header $headers .="From: Sales Department < [EMAIL PROTECTED] \n>"; $headers .= "reply-To:$from\nX-Mailer: PHP/" .phpversion()." \n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; //subject $subject1 = $subject; //mail($recipient, $subject1, $mail_content, $headers); //print "$recipient, $subject1, $mail_content, $headers"; echo $mail_content; Best regards, Richard mailto:[EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] email templates and str_replace
Mr. Kurth, Try this. Save the mail template to another file [like mailtemplate.txt] then open it for reading. //read in template $template = file("mailtemplate.txt"); //setup variables $fullname="Richard Kurth";$email="[EMAIL PROTECTED]";$hostdomain="northwesthost.com"; $hostname="www"; $domain="twohot"; $tld=".com";$baseip="234.444.45.444";$username="rkurth";$password="boat";$userdatabase="twohot";$newuser="twohot";$newuserpass="twohot";$sales="sales";$domainname=$hostname . "." . $domain . $tld; //iterate through the template replacing the items for($i = 0; $i < sizeof($template); $i++) { $template[i] = str_replace('##fullname##',$fullname,$template[i]); $template[i] = str_replace('##email##',$email,$template[i]); $template[i] = str_replace('##domain##',$domainname,$template[i]); $template[i] = str_replace('##ip##',$baseip,$template[i]); $template[i] = str_replace('##username##',$username,$template[i]); $template[i] = str_replace('##password##',$password,$template[i]); $template[i] = str_replace('##userdatabase##',$userdatabase,$template[i]); $template[i] = str_replace('##newuser##',$newuser,$template[i]); $template[i] = str_replace('##newuserpass##',$newuserpass,$template[i]); $template[i] = str_replace('##hostdomain##',$hostdomain,$template[i]); $template[i] = str_replace('##sales##',$sales,$template[i]); } //Now the array $template contains our message, parsed and all //from here we can implode it into one string, or we can leave //it be to do further things to it. The example from above is //similar to the method I use in my TemplateEngine I wrote a //little while back, I might just include the source some time. Hope this helps, Chris "TunkeyMicket" Watford TunkeyMicket Productions www.tunkeymicket.com - Original Message - From: "Richard Kurth" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 20, 2001 4:32 AM Subject: [PHP] email templates and str_replace > I am trying to set up a template for an email program below you will> see the test program the $mail_template is pulled from a database> that is pre saved when it is saved the Placeholders are filled in> using str_replace. that is what I want it to do. But it does not work. What am> I missing hear.> > $mail_template= "> > Web Hosting At ##hostdomain## > > > > Dear ##fullname## > > Your webhosting account has been created. Please use the following data to log in to ##domain## > > > > Domain:##domain## > IP-Address: ##ip## > Username: ##username##> Password: ##password##> Mysql Database: ##userdatabase## > Mysql Username: ##newuser## > Mysql Password: ##newuserpass## > > > > Thanks for choosing ##hostdomain## Any Questions e-mail ##sales##@##hostdomain##> > > > > ";> > /* message*/> //$mail_template = $message;> > $fullname="Richard Kurth";> $email="[EMAIL PROTECTED]";> $hostdomain="northwesthost.com";> $hostname="www";> $domain="twohot";> $tld=".com";> $baseip="234.444.45.444";> $username="rkurth";> $password="boat";> $userdatabase="twohot";> $newuser="twohot";> $newuserpass="twohot";> $sales="sales";> $domainname=$hostname . "." . $domain . $tld;> > > $mail_content = str_replace('##fullname##',$fullname,$mail_template);> $mail_content = str_replace('##email##',$email,$mail_template);> $mail_content = str_replace('##domain##',$domainname,$mail_template);> $mail_content = str_replace('##ip##',$baseip,$mail_template);> $mail_content = str_replace('##username##',$username,$mail_template);> $mail_content = str_replace('##password##',$password,$mail_template);> $mail_content = str_replace('##userdatabase##',$userdatabase,$mail_template);> $mail_content = str_replace('##newuser##',$newuser,$mail_template);> $mail_content = str_replace('##newuserpass##',$newuserpass,$mail_template);> $mail_content = str_replace('##hostdomain##',$hostdomain,$mail_template);> $mail_content = str_replace('##sales##',$sales,$mail_template);> /* and now mail it */> /* recipients */> $recipient = "$fullname <$email>" ; > //header> $headers .="From: Sales Department < [EMAIL PROTECTED] \n>";> $headers .= "reply-To:$from\nX-Mailer: PHP/" .phpversion()." \n";> $headers .= "Content-Type: text/html; charset=iso-8859-1\n";> //subject> $subject1 = $subject;> //mail($recipient, $subject1, $mail_content, $headers);> //print "$recipient, $subject1, $mail_content, $headers";> echo $mail_content;> > > > > > > > > > > > Best regards,> Richard > mailto:[EMAIL PROTECTED]
Re: [PHP] email templates and str_replace
Hi Richard, You are replacing the placeholders in $mail_template, but you are storing the results in $mail_content. > $mail_content = str_replace('##fullname##',$fullname,$mail_template); > $mail_content = str_replace('##email##',$email,$mail_template); This means that each time you call the str_replace function, you are overwriting what was generated by the previous call to str_replace. Just change $mail_content to $mail_template and everything should work. --zak - Original Message - From: "Richard Kurth" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 20, 2001 2:32 AM Subject: [PHP] email templates and str_replace > I am trying to set up a template for an email program below you will > see the test program the $mail_template is pulled from a database > that is pre saved when it is saved the Placeholders are filled in > using str_replace. that is what I want it to do. But it does not work. What am > I missing hear. > > $mail_template= " > > Web Hosting At ##hostdomain## > > > > Dear ##fullname## > > Your webhosting account has been created. Please use the following data to log in to ##domain## > > > > Domain:##domain## > IP-Address: ##ip## > Username: ##username## > Password: ##password## > Mysql Database: ##userdatabase## > Mysql Username: ##newuser## > Mysql Password: ##newuserpass## > > > > Thanks for choosing ##hostdomain## Any Questions e-mail ##sales##@##hostdomain## > > > > "; > > /* message*/ > //$mail_template = $message; > > $fullname="Richard Kurth"; > $email="[EMAIL PROTECTED]"; > $hostdomain="northwesthost.com"; > $hostname="www"; > $domain="twohot"; > $tld=".com"; > $baseip="234.444.45.444"; > $username="rkurth"; > $password="boat"; > $userdatabase="twohot"; > $newuser="twohot"; > $newuserpass="twohot"; > $sales="sales"; > $domainname=$hostname . "." . $domain . $tld; > > > $mail_content = str_replace('##fullname##',$fullname,$mail_template); > $mail_content = str_replace('##email##',$email,$mail_template); > $mail_content = str_replace('##domain##',$domainname,$mail_template); > $mail_content = str_replace('##ip##',$baseip,$mail_template); > $mail_content = str_replace('##username##',$username,$mail_template); > $mail_content = str_replace('##password##',$password,$mail_template); > $mail_content = str_replace('##userdatabase##',$userdatabase,$mail_template); > $mail_content = str_replace('##newuser##',$newuser,$mail_template); > $mail_content = str_replace('##newuserpass##',$newuserpass,$mail_template); > $mail_content = str_replace('##hostdomain##',$hostdomain,$mail_template); > $mail_content = str_replace('##sales##',$sales,$mail_template); > /* and now mail it */ > /* recipients */ > $recipient = "$fullname <$email>" ; > //header > $headers .="From: Sales Department < [EMAIL PROTECTED] \n>"; > $headers .= "reply-To:$from\nX-Mailer: PHP/" .phpversion()." \n"; > $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; > //subject > $subject1 = $subject; > //mail($recipient, $subject1, $mail_content, $headers); > //print "$recipient, $subject1, $mail_content, $headers"; > echo $mail_content; > > > > > > > > > > > > Best regards, > Richard > mailto:[EMAIL PROTECTED] >