Подобно
{assign "find" array('pno', 'error_1', 'error_2')}
{assign "repl" array('personal number error', 1, 2)}
{assign "text" 'error_1 and pno and error_2 are friends'}
{$text|replace:$find:$repl}
кстати: dont'cha, а сделать это с помощью контроллера и в TPL файлов используют конечные значения?
EDIT
, как сделать это, чтобы заменить точное совпадение только, например, если $ текст «ПНО», а затем заменить его, но если $ текст «pnopno», то ничего не делать?
В этом случае вы можете использовать регулярные выражения, однако это невозможно в массиве (насколько я знаю), и вам нужно сделать это шаг за шагом, а точнее, команду после команды.
Что касается замены pno
, а не pnopno
, вам необходимо выяснить свое собственное регулярное выражение в соответствии с вашими потребностями.
{assign "text" 'error_1 and pno and error_2 are friends'}
{$text|regex_replace:"/(\s)(pno)(\s)/":"personal number error"|regex_replace:"/(error_1)/":"1"|regex_replace:"/(error_2)/":"2"}
Спасибо, отлично работает! Теперь еще один вопрос: как заставить его заменить точное соответствие только, например, если $ text является «pno», а затем заменить его, но если $ text является «pnopno», то ничего не делать? – popkutt
Это похоже на то, что вы можете изменить, просто изменив немного. –