0

私は自分のデータベースからデータを引き出しています (生):

long's streetWe’d " tree < < ! cool & <body>

私が理解しているすべてのことから、これをhtmlページに出力するには、htmlEntitiesでラップする必要があります。

しかし、ラップすると何も出力されません。var_dump は次を示します。

long's streetWe&acirc;��d &quot; tree &lt; &lt; ! cool &amp; &lt;body&gt;

htmlspecialchars 出力のラップ:

long's streetWe’d &quot; tree &lt; &lt; ! cool &amp; &lt;body&gt;

var_dump の出力は、これと同じです。

しかし、ラッピング関数を使用せずに出力すると、データベースに保存されているため、表示したいとおりに出力されます。

出力すると、フォームの populate メソッドを介して表示されます (この値は、より大きなデータ配列にあります)。

なぜこれを行うのかわかりません。誰にもアイデアはありますか?

これはすべて、mysql db で zend を使用して php に組み込まれています。

敬具、

4

1 に答える 1

1

おそらく、フォームのpopulateメソッドは、HTMLではなくテキストを指定することを想定しているため、データを出力する前にHTMLに変換します。

これは、問題に対する標準的で賢明なアプローチです。データは可能な限り最後の瞬間にエスケープする必要があります(不適切にエスケープされないようにするため)。

于 2012-04-27T13:23:54.043 に答える