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