2010-12-08 40 views
1

ねえ、私はhtmlentities()を使用して、テキストエリアの文字をhtmlコードに変換しようとしています。私が今持っているコードは次のようになります。htmlentities()のdouble_encodeパラメータが正しく動作しませんか?

var_dump($colors); 
$colors= htmlentities($colors, ENT_QUOTES, 'UTF-8', false); 
var_dump($colors); 

この返す:

string(31) "• Red 
    • Green 
    • Blue<br />" 
    string(46) "&bull; Red 
    &bull; Green 
    &bull; Blue&lt;br /&gt;" 

私は&lt;br /&gt;に変換されてから<br />を妨げるdouble_encodeパラメータにfalseを渡すと仮定しました。

アイデア?

答えて

1

パラメータdouble_encodeは、既存のhtmlエンティティのエンコードを防止します(例:&bull;)。 <br />ではなく、のhtmlエンティティであるため、エンコードされます。

+0

ああ男。私は何かが見落とされていることを知っていた。ありがとう! –

+0

アレックスの答えは実際の*解決策に関してはもっと役立つかもしれませんが、代わりに+1しました。 –

+0

@Elヨボは、ありがとう:) – alex

2

の中に<br />の代わりに"\n"が必要です。あなたが行うことができ、あなたのデータからこれを自動化するために

...

$colors = preg_replace('/<br\s?\/?>/', "\n", $colors); 

ダブルエンコードはちょうど&amp;amp;のようなものが発生しないことを意味します。

+0

ありがとうございます。それは私が実際にやっていることです。私は答えた注文に基づいて@El Yobo'sを正しいものとしてマークします:P –

関連する問題