1

我将数据存储在一个名为message. 该字段的一个示例是:

<br /><br />

shane!

<br /><br />

****** Original Message ******

Test Back


<br /><br />


****** Original Message ******

test

当我echo进入一个<textarea>字段时,它显示为:

shane! ****** Original Message ****** Test Back ****** 
Original Message ****** test

echo该如何包含换行符?

4

3 回答 3

3

输出到文本区域时,您必须调用htmlentities htmlspecialchars如果您的文本包含 HTML。

<textarea><?php echo htmlspecialchars($text); ?></textarea>

这会将您转换<br />&lt;br /&gt;. 如果您保留<br />未编码,它们将被简单地解释为 HTML。

如果您的目标是<br />在 textarea 中显示或在数据库中写入其他 HTML,则必须转义所有否则会被解释为 HTML 的代码。

编辑

如果你想输出换行符而不是<br />你可以使用str_replace

<textarea><?php echo str_replace('<br />', "\r\n", $textarea); ?></textarea>

但请记住,所有其他 HTML 都将被解释而不显示。如果您不需要 HTML,我认为您应该从源头解决您的问题并将 CRLF 存储在数据库中。

于 2013-11-11T23:52:32.703 回答
2

您可以尝试str_replace<br />标签替换为行尾字符。

 str_replace('<br />', PHP_EOL, $textarea);
于 2013-11-11T23:51:43.200 回答
0

该标签不接受其中的 HTML 代码。相反,您需要将代码格式化为纯文本文件。检查这个例子:

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea

现在将源代码替换为以下内容:

<!DOCTYPE html>
<html>
<body>

<textarea rows="4" cols="50">
At w3schools.com you will learn how to make a website.



We offer free tutorials in all web development technologies.
</textarea>

</body>
</html>

您将看到 textarea 内部的格式与标签非常相似。所以你的问题的答案是你需要用
换行符替换每个。

于 2013-11-11T23:56:04.497 回答