Smarty заменяет несколько значений, которые могут содержать друг друга - PullRequest
0 голосов
/ 15 мая 2019

В моем шаблоне smarty я получил цветовые коды из моей БД, например:

c#m#fc#fm#

Теперь я хочу заменить каждый цветовой код HTML-тегом.

c# => <i class='fas fa-circle cyan'></i> m# => <i class='fas fa-circle magenta'></i> fc# => <i class='fas fa-circle lightmagenta'></i> fm# => <i class='fas fa-circle lightcyan'></i>

Я пробовал это так:

[{$oAttr->oxattribute__oxvalue->value|replace:"c#":"<i class='fas fa-circle cyan'></i>"|replace:"m#":"<i class='fas fa-circle magenta'></i>"|replace:"fc#":"<i class='fas fa-circle fcyan'></i>"|replace:"fm#":"<i class='fas fa-circle fmagenta'></i>"}]

Проблема в том, что replace:"c#":"<i class='fas fa-circle cyan'></i> также заменяет c# в fc#. Так что f осталось.

Какое будет лучшее решение? Я думаю, что regex_replace будет работать, но я новичок в regex. У кого-нибудь могут быть полезные советы или решения?

Привет

...