Domanda

Ho la seguente stringa nella variabile $ test di smarty (php templating system):

<img height="113" width="150" alt="Sunset" src="/test.jpg"/>

Voglio aggiungere " em " all'altezza e alla larghezza in questo modo:

{$test|replace:'" w':'em" w'|replace:'" a':'em" a'}

Ma questo non funziona ... Qual è il problema e la soluzione?

È stato utile?

Soluzione

il mio regex non è il massimo, o ti darei un abbinamento migliore, ma forse usare ciò che hai attraverso il regex sostituire funzionerebbe.

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

altri matcher da provare

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

Al momento non posso giocare con i miei siti smarty, ma prima rimuoverei " dal valore di sostituzione, per vedere se il bug è lì, quindi rimuoverlo dal matcher e cercare solo altezza / larghezza.

altrimenti, se possibile, farei la sostituzione in PHP.

Altri suggerimenti

Sai & # 8216; em & # 8217; le unità con attributi HTML larghezza / altezza non sono valide, giusto? Questo è solo CSS.

Con Aggiorno la ricerca intelligente e sostituisci puoi fare così:

Pattern di ricerca:

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

Sostituisci modello:

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

Quando fai clic su " Cerca " pulsante, tutte le occorrenze vengono evidenziate prima di applicare la sostituzione in modo da poter effettuare ulteriori controlli, dopodiché è possibile applicare la sostituzione in modo sicuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top