PHP不会显示新行

时间:2013-11-14 23:48:08

标签: php mysql process

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

enter image description here

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

enter image description here

这是我的源代码:

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

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

<p><?=$objekttekst?></p>
有人可以帮帮我吗?感谢

3 个答案:

答案 0 :(得分:1)

使用 nl2br() 功能。

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

答案 1 :(得分:1)

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

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

使用预先格式化的文字格式化textarea

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

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

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

<强>预格式化

如果要按原样显示文字,可以随身携带<PRE>...</PRE>。这将显示任何换行符,缩进等。请注意,这将使输出使用固定宽度的字体,如 Courier New

将换行符转换为<BR>代码

使用另一个答案中已提到的函数nl2br()。有关详细信息,请参阅:http://php.net/manual/en/function.nl2br.php

附加说明......

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

答案 2 :(得分:0)

您可以使用<pre>代码覆盖字符串,而不是将\n替换为<br>

示例:

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