>我正在将数据存储在名为 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
它以包含换行符?
输出到文本区域时,如果文本包含 HTML,则必须调用
htmlentities
htmlspecialchars
。
<textarea><?php echo htmlspecialchars($text); ?></textarea>
这会将您的<br />
转换为 <br />
.如果使<br />
保持未编码状态,它们将被简单地解释为 HTML。
如果您的目标是在文本区域中显示<br />
或其他 HTML,就像在数据库中编写的那样,则必须转义否则会被解释为 HTML 的所有代码。
编辑
如果要输出换行符而不是<br />
可以使用str_replace
:
<textarea><?php echo str_replace('<br />', "'r'n", $textarea); ?></textarea>
但请记住,所有其他 HTML 将被解释且不显示。我认为您应该在源头解决问题,如果您不需要 HTML,请将 CRLF 存储在数据库中。
您可以
尝试str_replace
将<br />
标签替换为行尾字符。
str_replace('<br />', PHP_EOL, $textarea);
标签不接受其中的 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>
您将看到文本区域内的格式与标签非常相似。因此,您的问题的答案是您需要用换行符替换每个
字符。