Smarty заменяет текст двойными кавычками

У меня есть следующая строка в переменной $ 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'}

Но это не работает ... В чем проблема и решение?

Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
0
6 738
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

мое регулярное выражение не самое лучшее, или я бы дал вам лучший сопоставитель, но, возможно, использование того, что у вас есть через замену регулярного выражения, сработает.

{$test|regex_replace:'/".w/':'em" w'|regex_replace:'/".a/':'em" a'}

другие сопоставители, чтобы попробовать

'/\".w/'
'/".*w/'
'/\".*w/'

Я не могу играть с моими умными сайтами в данный момент, но сначала я бы удалил "из значения замены, чтобы увидеть, есть ли там ошибка, затем удалил его из сопоставителя и просто посмотрел высоту / ширину.

в противном случае я бы сделал замену на PHP, если сможете.

Вы ведь знаете, что единицы em в атрибутах ширины и высоты HTML недопустимы, верно? Это только CSS.

да, я узнал после того, как мне удалось все это заменить ... Теперь я заменяю ширину и высоту на 'style = "width: 150em; height: 113em"'. Это работает намного лучше;)

Joep 24.11.2008 13:02

С помощью интеллектуального поиска и замены Агджорно вы можете сделать это следующим образом:

Шаблон поиска:

<img height = "$h" width = "$w" $attributes/>

Заменить шаблон:

<img height = "$[h]em" width = "$[w]em" $attributes"/>

Когда вы нажимаете кнопку «Поиск», все вхождения выделяются перед применением замены, чтобы вы могли выполнить дальнейшую проверку, после чего вы можете уверенно применить замену.

Другие вопросы по теме