0

I'm working on a platform that enables you to use templates provided by the platform and you can change few things in the choosen template (title, text, image.. etc)

For now I am storing them as files and indexing them in the database. My question is how do I go about the variables in the template.

This is what I am doing:

<td id="Previewemailbody" data-color="text" data-size="size text" data-min="10" data-max="26" data-link-color="link text color" data-link-style="font-weight:bold; text-decoration:underline; color:#40aceb;" align="center" style="font:bold 16px/25px Arial, Helvetica, sans-serif; color:#888; padding:0 0 23px;">
        "{$content}"
</td>

and in the php after I retrieve the template :

$old = array('{$title}', '{$img}', '{$content}');
$new = array("my title", "/my_path", "Lorem Ipsum..");
new_template = str_replace($old, $new, $template_data);

Now my question is, is this the best way to do it ? Are there other cleaner methods that perhaps are better in terms of performance ?

Mohe TheDreamy
  • 387
  • 8
  • 21
  • No. And there is little point storing the placeholder string with a `$` in it if you are going to `str_replace()` the placeholder – RiggsFolly Dec 18 '18 at 20:37
  • 1
    You need `strtr()` or else you will get nested replacements. See my old question and the answer: https://stackoverflow.com/q/36310610/2191572 – MonkeyZeus Dec 18 '18 at 20:48
  • @MonkeyZeus You're right, it seems like str_replace and preg_replace do multiple replacements. Thanks. – Mohe TheDreamy Dec 18 '18 at 21:18

0 Answers0