我将数据存储在名为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
这包括换行符?
答案 0 :(得分:3)
输出到textarea时,如果文本包含HTML,则必须调用 htmlentities
htmlspecialchars
。
<textarea><?php echo htmlspecialchars($text); ?></textarea>
这会将您的<br />
转换为<br />
。如果您将<br />
保留为未编码状态,则只会将其解释为HTML。
如果您的目标是在textarea中显示<br />
或其他HTML,因为它在数据库中写入,您必须转义所有可能被解释为HTML的代码。
修改强>
如果您想输出换行符而不是<br />
,可以使用str_replace
:
<textarea><?php echo str_replace('<br />', "\r\n", $textarea); ?></textarea>
但请记住,所有其他HTML都将被解释而不会显示。我认为如果你不需要HTML,你应该在源头解决你的问题并将CRLF存储在数据库中。
答案 1 :(得分:2)
您可以尝试str_replace
将<br />
代码替换为行尾字符。
str_replace('<br />', PHP_EOL, $textarea);
答案 2 :(得分: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内部的格式与标签非常相似。因此,您的问题的答案是您需要用换行符替换每个字符。