我对从我的数据库中提取的文本有一点问题。 在用户确认了他们的新帖子后,它会像这样保存在数据库中(就像我想要的那样)。
但是在网页中,它会忽略这些行,只是在同一行上回显所有内容。
这是我的源代码:
$objekttekst=str_replace("\\r\\n", "<br>", $obj->innhold);
$objekttittel=$obj->tittel;
?>
<h2><?=$objekttittel?></h2>
<p><?=$objekttekst?></p>
有人可以帮帮我吗?感谢
答案 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>