2008-11-19 28 views
0

je la chaîne suivante dans le Smarty (système php templating) variable $ test:Smarty remplacer le texte avec des guillemets doubles

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

Je veux ajouter « em » à la hauteur et la largeur comme ceci:

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

Mais cela ne fonctionne pas ... Quel est le problème et la solution?

Répondre

2

mon regex n'est pas le meilleur, ou je vous donnerais un meilleur matcher, mais peut-être que l'utilisation de ce que vous avez à travers le regex remplacer fonctionnerait.

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

autres matchers pour essayer

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

je ne peux pas jouer avec mes sites Smarty pour le moment, mais je voudrais tout d'abord retirer la "de la valeur de remplacement, pour voir si le bug est là-bas, puis retirez-le de la matcher et il suffit de regarder la hauteur/largeur.

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

4

vous ne connaissez « em » unités dans les attributs de largeur/hauteur HTML ne sont pas val id, non? C'est CSS seulement.

+0

Oui, je l'ai découvert après avoir réussi à tout remplacer ... Maintenant, je remplace la largeur et la hauteur avec «style =» largeur: 150em; hauteur: 113em "'. Cela fonctionne beaucoup mieux;) – Joep

0

Avec Smart Search and Replace vous pouvez le faire comme ça de Aggiorno »:

Motif de recherche:

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

Remplacer Motif:

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

Lorsque vous cliquez sur "Recherche" bouton, toutes les occurrences sont mises en surbrillance avant d'appliquer le remplacement afin que vous puissiez faire d'autres vérifications, après quoi vous pouvez appliquer le remplacement avec confiance.