我正在从文本区域收集文本。文本中有换行符。然后我将它保存到数据库中。
但是,当我从数据库中检索它并将其显示回文本区域进行编辑时,换行符消失了,文本变成了一个长的连续字符串。
我希望原来那里的换行符重新出现。插入回文本区域时,如何使换行符按应有的方式显示?
注意:我不能只将它们转换为 a <br>
,因为这是在一个文本区域内,<br>
元素不会被渲染,而只是作为文本写出。我想要实际的换行符。
我正在从文本区域收集文本。文本中有换行符。然后我将它保存到数据库中。
但是,当我从数据库中检索它并将其显示回文本区域进行编辑时,换行符消失了,文本变成了一个长的连续字符串。
我希望原来那里的换行符重新出现。插入回文本区域时,如何使换行符按应有的方式显示?
注意:我不能只将它们转换为 a <br>
,因为这是在一个文本区域内,<br>
元素不会被渲染,而只是作为文本写出。我想要实际的换行符。
每个人都建议将换行符转换为<br />
,但是正如您在问题中所说的那样,这不是您想要的。您想再次在 textarea 中显示换行符。所以,你需要的是stripcslashes()
- 这将剥离\n
并给你你所追求的,是你的文本区域中的换行符,而不是文本区域<br />
中的 html 标签:
PHP:条带斜杠
用法:
echo stripcslashes($input_text);
你可以使用这样的东西:
echo nl2br($someText);
str_replace()
doesn't go like this:
echo str_replace($data, "\n", "<br />");
It goes like this:
str_replace("SEARCH_FOR","REPLACE_WITH",STRING);
In the sense that SEARCH_FOR
is what you are trying to find, REPLACE_WITH
is what you want to replace with, and STRING
is the variable you are using (such as $data
).
这是我在处理此类问题时通常会做的事情:
显示数据后,将每个换行符转换为<br />
:
echo str_replace("\n", "<br />", $data);
使用这种技术,您可以在 textarea 中保留用户使用的任何格式数据。