【问题标题】:PHP wont show new line [duplicate]PHP不会显示新行[重复]
【发布时间】:2013-11-14 23:48:08
【问题描述】:

我对从我的数据库中读取的文本有一点问题。 用户确认他们的新帖子后,它会像这样保存在数据库中(就像我想要的那样)。

但在网页中,它会忽略这些行,而只是在同一行中回显所有内容。

这是我的一点源代码:

$objekttekst=str_replace("\\r\\n", "<br>", $obj->innhold);

        $objekttittel=$obj->tittel;
?>
<h2><?=$objekttittel?></h2>

<p><?=$objekttekst?></p>

有人可以帮帮我吗?谢谢

【问题讨论】:

标签: php mysql process


【解决方案1】:

使用nl2br()函数。

$objekttekst = nl2br($obj->innhold);

【讨论】:

    【解决方案2】:

    输入文本区域是预先格式化的,这意味着它将显示用户输入的任何换行符。但是,呈现的 HTML(Web 浏览器)不会显示输入中的任何换行符,除非使用 &lt;BR&gt; 等标签显式插入换行符。

    这里有几个选项。当然,这三个不是您唯一的选择,但它们是我个人最常使用的选择。

    使用预先格式化的文本形成文本区域

    如果您想在给出输入的类似文本区域中显示数据 (objekttekst),您可以这样做:

    <h2><?=$objekttittel?></h2>
    <p><textarea><?=$objekttekst?></textarea></p>
    

    这在用户需要编辑条目的情况下最适合您。

    预格式化

    如果您想按原样显示文本,您始终可以用&lt;PRE&gt;...&lt;/PRE&gt; 将其包围。这将显示任何换行符、缩进等。请注意,这将使输出使用固定宽度的字体,例如 Courier New

    将换行符转换为&lt;BR&gt; 标签

    使用函数nl2br(),正如另一个答案中已经提到的那样。请参阅:http://php.net/manual/en/function.nl2br.php 了解更多信息。

    补充说明...

    您可能希望查看正则表达式,因为在许多情况下,您可能还希望在将数据显示在 HTML 页面中之前对数据进行一些其他修改。 nl2br() 会处理换行符,但对于其他更复杂的修改,您应该学习正则表达式。

    【讨论】:

      【解决方案3】:

      你可以用&lt;pre&gt;标签包围你的字符串,而不是用&lt;br&gt;替换\n

      例子:

        <?php
          $objekttekst=$obj->innhold
          $objekttittel=$obj->tittel;
        ?>
        <h2><?=$objekttittel?></h2>
        <p><pre><?=$objekttekst?></pre></p>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-01
        • 1970-01-01
        • 2020-06-05
        • 1970-01-01
        • 1970-01-01
        • 2019-11-23
        相关资源
        最近更新 更多