I am writing an email module for my web app that sends a html email to a user on completion of a task such as signing up. Now as the formatting of this email may change I’ve decided to have a template html page that is the email, with custom tags in it that need to be replaced such as %fullname%.
My function has an array in the format of array(%fullname% => ‘Joe Bloggs’); with the key as the tag identifier and the value of what needs to replace it.
I’ve tried the following:
$fp = @fopen('email.html', 'r'); if($fp) { while(!feof($fp)){ $line = fgets($fp); foreach($data as $value){ echo $value; $repstr = str_replace(key($data), $value, $line); } $content .= $repstr; } fclose($fp); }
Is this the best way to do this? as only 1 tag get replaced at the moment… am I on the right path or miles off??
thanks…
I think the problem is in your foreach. This should fix it:
Alternatively, I think this should be more effective: