По сути, вы почти предоставили ответ на свой вопрос самостоятельно.
В smarty у вас есть переменная $var
, и вы используете модификатор переменной smarty regex_replace для выполненияпоиск и замена регулярного выражения в этой переменной.
Модификатор переменной smarty regex_replace требует два параметра:
Оба параметра имеют тип string
.Параметры в модификаторе переменной smarty разделяются двоеточием.
В вашем первом примере кода
{$ver|regex_replace:"/something/":"<div class="xyz">anything</div>"}
ваш первый параметр "/something/"
, но второй не работает, потому что вы нене экранируйте кавычки!
Во втором примере кода
{$ver|regex_replace:"/something/":"<div>anything</div>"}
вы удалили атрибут класса в вашем div, так что у вас больше нет проблемы с экранированием кавычек,Вот почему ваш второй пример кода работает.
Имея это в виду, теперь вы можете исправить свой первый пример кода, избегая кавычек
{$ver|regex_replace:"/something/":"<div class=\"xyz\">anything</div>"}
или вы можете использовать одинарные кавычки, напримерпредлагается в комментариях:
{$ver|regex_replace:"/something/":"<div class='xyz'>anything</div>"}
Лично я предпочитаю использовать одинарные кавычки.