我将多线会话字符串回显到textarea中,如果它已设置:
<textarea><?php if (isset($_SESSION['saved_text'])) { echo nl2br($_SESSION['saved_text']); } ?></textarea>
如:
"Line 1
Line 2
Line 3"
当它将会话回显到textarea时,它会回来:
"Line 1\r\nLine 2\r\nLine 3"
但是我想知道它是如何在字符串中格式化的,包含换行符,但没有明确地将它们显示为&#34; \ n&#34;我该怎么做?
答案 0 :(得分:1)
您不需要nl2br
在textarea中显示新行。
<textarea><?php if (isset($_SESSION['saved_text'])) { echo $_SESSION['saved_text']; } ?></textarea>
这会奏效。
或者,如果文本包含一些特殊字符,则可以使用htmlspecialchars()
:
<textarea><?php if (isset($_SESSION['saved_text'])) { echo htmlspecialchars($_SESSION['saved_text']); } ?></textarea>
<强>更新强>
似乎\r\n
在保存到DB之前已被转义,现在它们只是文本的字符,所以要删除它们,您需要将它们删除为可以使用str_ireplace()
的字符< / p>
<textarea><?php if (isset($_SESSION['saved_text'])) { echo str_ireplace("\\r\\n", "\r\n", $_SESSION['saved_text']); } ?></textarea>