Smarty substituir o texto com aspas duplas
Pergunta
Eu tenho a seguinte seqüência de caracteres no Smarty (sistema de templates php) $ test variável:
<img height="113" width="150" alt="Sunset" src="/test.jpg"/>
Gostaria de acrescentar "em" para a altura e largura como esta:
{$test|replace:'" w':'em" w'|replace:'" a':'em" a'}
Mas isso não funciona ... Qual é o problema ea solução?
Solução
meu regex não é o maior, ou eu dar-lhe uma correspondência melhor, mas talvez usando o que você tem através do regex substituir iria funcionar.
{$test|regex_replace:'/".w/':'em" w'|regex_replace:'/".a/':'em" a'}
outros matchers tentar
'/\".w/'
'/".*w/'
'/\".*w/'
Eu não posso jogar com meus sites do sabe-tudo no momento, mas eu primeiro remover o "a partir do valor de reposição, para ver se o bug está lá, em seguida, removê-lo da correspondência e basta olhar para a altura / largura .
caso contrário eu faria o substituir em PHP, se puder.
Outras dicas
Você sabe ‘em’ unidades em HTML largura / altura atributos não são válidos, certo? Que de CSS somente.
Com Aggiorno 's Smart Search and Replace você pode fazer assim:
Pesquisar Padrão:
<img height="$h" width="$w" $attributes/>
Substituir Padrão:
<img height="$[h]em" width="$[w]em" $attributes"/>
Quando você clica no botão "Procurar", todas as ocorrências são destacadas antes de aplicar a substituição para que possa fazer mais corrente, depois que você pode aplicar a substituição confiança.