htmlentities()的double_encode参数表现不正常?

时间:2010-12-08 00:06:55

标签: php textarea html-entities

嘿伙计们,我正在尝试使用htmlentities()将textarea中的字符转换为html代码。我现在的代码看起来像这样:

 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;"

我假设将false传递给double_encode参数会阻止<br />转换为&lt;br /&gt;

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您希望"\n"内有<br />而不是textarea

要从您的数据中自动执行此操作,您可以执行...

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

双重编码只意味着&amp;amp;之类的事情不会发生。

答案 1 :(得分:1)

double_encode参数可防止编码现有的html实体(例如&bull;)。 <br /> 是一个html实体,因此会被编码。