smarty(phpテンプレートシステム)変数$testに次の文字列があります。
<img height="113" width="150" alt="Sunset" src="/test.jpg"/>
次のように高さと幅に「em」を追加します。
{$test|replace:'" w':'em" w'|replace:'" a':'em" a'}
しかし、これは機能しません...問題と解決策は何ですか?
HTML の幅/高さ属性の 'em' 単位が無効であることはご存知ですよね? それはCSSのみです。
私の正規表現は最高ではありません。または、より良いマッチャーを提供したいと思いますが、正規表現の置き換えを通じて持っているものを使用するとうまくいくかもしれません。
{$test|regex_replace:'/".w/':'em" w'|regex_replace:'/".a/':'em" a'}
試してみる他のマッチャー
'/\".w/'
'/".*w/'
'/\".*w/'
現時点ではスマート サイトで遊ぶことはできませんが、最初に置換値から " を削除して、バグがあるかどうかを確認してから、マッチャーから削除して、高さ/幅を探します。
それ以外の場合は、可能であれば PHP で置き換えます。
Aggiornoの Smart Search and Replace を使用すると、次のように実行できます。
検索パターン:
<img height="$h" width="$w" $attributes/>
置換パターン:
<img height="$[h]em" width="$[w]em" $attributes"/>
[検索] ボタンをクリックすると、置換を適用する前にすべての出現箇所が強調表示されるため、さらにチェックを行うことができます。その後、自信を持って置換を適用できます。