10

バージョン 1.9.0 以降、Twigはフィルターのhtml_attr戦略を提供します (ドキュメントを参照)。escape

このhtml戦略では、htmlspecialchars PHP 関数を使用します (これは、ソースをざっと見て確認します)。このhtml_attr戦略では、最終的に同じ効果があると思われる一連のカスタム置換を使用します。

2つの戦略に違いはありますか?

4

1 に答える 1

12

ソースは次のように述べています。

/*
 * While HTML supports far more named entities, the lowest common denominator
 * has become HTML5's XML Serialisation which is restricted to the those named
 * entities that XML supports. Using HTML entities would result in this error:
 *     XML Parsing Error: undefined entity
 */

実際には、html戦略は HTML で特別な意味を持つ文字のみを変更しますが、html_attr戦略はスペースを含むほぼすべての英数字以外の文字を置き換えます。例を参照してください。

このテキストを見て、いいですか?

raw:       See this <b>text</b>, OK?
html:      See this &lt;b&gt;text&lt;/b&gt;, OK?
html_attr: See&#x20;this&#x20;&lt;b&gt;text&lt;&#x2F;b&gt;,&#x20;OK&#x3F;

私の理解では、HTML の場合はhtml戦略を使用でき、XML ドキュメントの場合はhtml_attr戦略を使用する方が適切ですが、実際にはこれを試していません。

于 2013-01-05T11:31:43.273 に答える