Question

J'ai la chaîne suivante dans la variable $ test de smarty (système de templates php):

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

Je souhaite ajouter "em". à la hauteur et la largeur comme ceci:

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

Mais ça ne marche pas ... Quel est le problème et la solution?

Était-ce utile?

La solution

Mon regex n’est pas la meilleure, ou je vous donnerais un meilleur matcher, mais peut-être qu’utiliser ce que vous avez avec le remplacement de regex fonctionnerait.

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

autres correspondants à essayer

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

Je ne peux pas jouer avec mes sites smarty pour le moment, mais je supprimerais d’abord le " à partir de la valeur de remplacement, pour voir si le bogue est là, puis supprimez-le de l'outil de correspondance et cherchez simplement la hauteur / largeur.

sinon je ferais le remplacement en PHP si vous le pouvez.

Autres conseils

Vous connaissez & # 8216; em & # 8217; les unités dans les attributs HTML largeur / hauteur ne sont pas valides, non? C’est seulement CSS.

Grâce à la recherche intelligente et au remplacement de Aggiorno , vous pouvez le faire. ça comme ça:

Modèle de recherche:

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

Remplacer le modèle:

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

Lorsque vous cliquez sur le bouton "Rechercher". bouton, toutes les occurrences sont mises en surbrillance avant l'application du remplacement afin que vous puissiez effectuer une vérification supplémentaire, après quoi vous pouvez appliquer le remplacement en toute confiance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top