У меня есть следующая строка в переменной $ test smarty (php templating system):
<img height = "113" width = "150" alt = "Sunset" src = "/test.jpg"/>
Я хочу добавить «em» к высоте и ширине следующим образом:
{$test|replace:'" w':'em" w'|replace:'" a':'em" a'}
Но это не работает ... В чем проблема и решение?

мое регулярное выражение не самое лучшее, или я бы дал вам лучший сопоставитель, но, возможно, использование того, что у вас есть через замену регулярного выражения, сработает.
{$test|regex_replace:'/".w/':'em" w'|regex_replace:'/".a/':'em" a'}
другие сопоставители, чтобы попробовать
'/\".w/'
'/".*w/'
'/\".*w/'
Я не могу играть с моими умными сайтами в данный момент, но сначала я бы удалил "из значения замены, чтобы увидеть, есть ли там ошибка, затем удалил его из сопоставителя и просто посмотрел высоту / ширину.
в противном случае я бы сделал замену на PHP, если сможете.
Вы ведь знаете, что единицы em в атрибутах ширины и высоты HTML недопустимы, верно? Это только CSS.
С помощью интеллектуального поиска и замены Агджорно вы можете сделать это следующим образом:
Шаблон поиска:
<img height = "$h" width = "$w" $attributes/>
Заменить шаблон:
<img height = "$[h]em" width = "$[w]em" $attributes"/>
Когда вы нажимаете кнопку «Поиск», все вхождения выделяются перед применением замены, чтобы вы могли выполнить дальнейшую проверку, после чего вы можете уверенно применить замену.
да, я узнал после того, как мне удалось все это заменить ... Теперь я заменяю ширину и высоту на 'style = "width: 150em; height: 113em"'. Это работает намного лучше;)