htmlentities() 的 double_encode 参数行为不正确?

发布于 2024-10-06 05:37:30 字数 497 浏览 7 评论 0原文

大家好,我正在尝试使用 htmlentities() 将文本区域中的字符转换为 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 参数会阻止
转换为

有什么想法吗?

Hey guys, I'm trying to use htmlentities() to convert the characters in a textarea to html codes. The code I have right now looks like this:

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

which returns this:

    string(31) "• Red 
    • Green
    • Blue<br />"
    string(46) "• Red 
    • Green
    • Blue<br />"

I assumed passing false to the double_encode parameter would prevent <br /> from being converted to <br />.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

听你说爱我 2024-10-13 05:37:32

double_encode 参数可防止对现有 html 实体(例如 )进行编码。
不是 html 实体,因此它会被编码。

The double_encode parameter prevents encoding existing html entities (e.g. ). <br /> is not an html entity, so it gets encoded.

笨死的猪 2024-10-13 05:37:31

听起来您想要一个 "\n" 而不是 textarea 中的

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

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

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

Sounds like you want a "\n" instead of a <br /> inside your textarea.

To automate this from your data, you could do...

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

Double encode just means things like &amp; won't happen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文