PHP不会显示新行

PHP不会显示新行,php,mysql,process,Php,Mysql,Process,我对从数据库中读取的文本有点问题。 在用户确认他们的新帖子后,它会像这样保存在数据库中(就像我希望它那样) 但在网页中,它会忽略这些行,只是呼出同一行上的所有内容 以下是我的一点源代码: $objekttekst=str_replace("\\r\\n", "<br>", $obj->innhold); $objekttittel=$obj->tittel; ?> <h2><?=$objekttittel?></h

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

但在网页中,它会忽略这些行,只是呼出同一行上的所有内容

以下是我的一点源代码:

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

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

<p><?=$objekttekst?></p>
$objekttekst=str_replace(\\r\\n“,“
”,$obj->innhold); $objekttittel=$obj->tittel; ?>

有人能帮我吗?感谢使用

功能

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

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

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

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

如果要在类似的文本区域中显示数据(objekttekst),您可以执行以下操作:

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

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

预格式化

如果要按原样显示文本,可以始终使用
。这将显示任何换行符、缩进等。请注意,这将使输出使用固定宽度字体,如Courier New

将换行符转换为

标记

使用函数
nl2br()
,如另一个答案中所述。有关更多信息,请参阅

附加说明…


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

您可以用

  <?php
    $objekttekst=$obj->innhold
    $objekttittel=$obj->tittel;
  ?>
  <h2><?=$objekttittel?></h2>
  <p><pre><?=$objekttekst?></pre></p>
“\\r\\n”
正在将
\r\n
逐字替换为

,而不是
\r\n
所代表的内容,因为您正在转义转义字符。