2012-01-03 5 views
2

Я смотрел и смотрел на пример по этому вопросу, но только те, которые я нашел являются вторя результат ул заменить так:Использование фигурных скобок в электронную почту/статьи для вставки клиенты называют

$malestr = str_replace("{name}", "$name", $rawstring); 
echo "$malestr"; 

Но это не то, что я хочу, то, что я пытаюсь сделать, - это ......., когда я создаю шаблон, в поле текстового поля для сообщения, которое я бы написал:

Дорогой {имя} , Благодарим за ваш заказ!.

Имя будучи человеком, я пишу тоже, что извлекается из массива $ toPersonsName, когда письмо будет отправлено:

Так что результат этого будет в электронном письме следующим образом:

Если клиент был назван bob, это было бы >>

Дорогой Боб, Благодарим за ваш заказ!

Это str_replace мне нужно для этого или что-то еще, так как я не хочу, чтобы написать

Dear <?php echo '$malestr';?> 

каждый раз, когда я создаю шаблон {имя} будет лучше.

EDIT >>

Если я сделать следующее:

$name = 'BOB'; 
$rawstring = "$name"; 

$malestr = str_replace("{name}", "$name", $rawstring); 


echo "$malestr"; 
echo "{name}"; 

Это отголоски {имя}, но не боб ??, еще $ malestr эхо Бобом, как я могу получить {имя}, чтобы эхо-боб?

+0

Что не так с кодом, который у вас уже есть? В чем проблема с использованием значения, хранящегося в переменной? –

+0

если я эхо 'Дорогой {имя}, спасибо за ваш заказ !.' Я просто получаю {name}, он не заменяет его именем –

+0

возможным дубликатом [Подстановка подстановки с использованием str_replace] (http://stackoverflow.com/questions/8710376/substring-replacement-using-str-replace) –

ответ

0

Существуют различные способы замены струны, и вы можете видеть в this blog post, как они сравнивают скорость с скоростью.

В конечном счете вам необходимо проанализировать весь вывод вашего представления (если вы используете MVC) и заменить каждый экземпляр. Популярный шаблонный движок, Smarty, использует нечто очень похожее на то, чего вы пытаетесь достичь. Это открытый исходный код, если вы хотите посмотреть, как они выполняют эту функцию.

0

Для этого вы можете использовать функцию strtr().

+0

Как заменить {name} с помощью этого? –