我使用nl2br().<br/>
将文本区域中的用户输入存储到数据库中
现在的问题是,当我稍后在文本区域中显示此输入时,我不想显示"br"
标记,而是作为新行。<br/>
我正在使用str_replace
但这似乎每次来回时都会添加一个新行。
例如。用户输入
Hello
World
它存储为
Hello<br />World
对我很好。
但是当我再次在文本区域中显示它时(在str_replace ...之后用“\ n”标记br标签)
Hello
World //which if i submit gives me Hello<br /><br />World
有没有办法实现我想做的事情?
答案 0 :(得分:1)
不要将其与nl2br
一起存储。您应该只存储已发布的原始数据。如果要更新它以供显示,请在当时使用nl2br
。
if ($storing) {
$dbstmt->execute($_POST['textarea-value']);
}
else {
$textareaValue = $db->query($select);
echo "<div>" . nl2br(htmlspecialchars($textareaValue)) . "</div>";
echo "<textarea>" . htmlspecialchars($textareaValue) . "</textarea>";
}
答案 1 :(得分:1)
nl2br
功能会在每个换行符(<br/>
)后附加\r\n, \n\r, \n and \r
。
但是,它不会删除断裂线本身。因此,当您使用str_replace
再次添加折线时,它会显示为double。
有两个选项,首先,更改str_replace
只需删除<br/>
而不添加换行符,或者其次是不使用nl2br
。
我会选择第二个,并在需要在html中显示数据时使用nl2br
。