3

我在 mysql 字段中出现了以下内容,

 Hello there
 world

当我使用此代码格式化上述内容时:

 echo htmlspecialchars($thestring) 

它输出这个,

 Hello there<br/><br/>world

我怎样才能让它做换行符?

我想继续使用 htmlspecialchars 来帮助处理其他 html 字符。

4

3 回答 3

2

您需要调用nl2br以将换行符转换为 html:

nl2br(htmlspecialchars($text))

http://php.net/manual/en/function.nl2br.php

于 2015-03-05T13:01:36.767 回答
1

<![CDATA[<br/>]]>

这对我有用

于 2015-05-07T06:35:37.763 回答
1

如果您<br>在字符串中获得标签之后htmlspecialchars(),则意味着您的<br>字符串中有确切的标签(不是\n换行符),因为htmlspecialchars()不会转换\n<br>.

如果是这样,您必须进行往返的双重<br>转换\n

步骤 1.转换<br>\n

步骤 2.运行htmlspecialchars()

步骤 3.转换\n<br>

例子:

    <?php
        echo
            str_replace(  // Step 3
                "\n",
                "<br />",
                htmlspecialchars(  // Step 2
                    str_replace(  // Step 1
                        array("<br />", "<br/>", "<br>"), // make sure that you have your version of <br> tag here
                        "\n", 
                        $text
                    ),
                    ENT_QUOTES,
                    'UTF-8'
                )
            );
    ?>
于 2021-01-06T12:07:01.093 回答