Я работаю над платформой, которая позволяет вам использовать шаблоны, предоставляемые платформой, и вы можете изменить некоторые вещи в выбранном шаблоне (заголовок, текст, изображение и т. д.)
Сейчас я храню их как файлы и индексирую в базе данных. Мой вопрос в том, как мне использовать переменные в шаблоне.
Вот что я делаю:
<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>
и в php после получения шаблона:
$old = array('{$title}', '{$img}', '{$content}');
$new = array("my title", "/my_path", "Lorem Ipsum..");
new_template = str_replace($old, $new, $template_data);
Теперь мой вопрос: это лучший способ сделать это? Есть ли другие более чистые методы, которые, возможно, лучше с точки зрения производительности?
Вам нужен strtr()
, иначе вы получите вложенные замены. См. Мой старый вопрос и ответ: stackoverflow.com/q/36310610/2191572
@MonkeyZeus Вы правы, похоже, что str_replace и preg_replace выполняют несколько замен. Спасибо.
Нет. И нет особого смысла хранить строку-заполнитель с
$
в ней, если вы собираетесь использоватьstr_replace()
в качестве заполнителя.