2

我正在从文本区域收集文本。文本中有换行符。然后我将它保存到数据库中。

但是,当我从数据库中检索它并将其显示回文本区域进行编辑时,换行符消失了,文本变成了一个长的连续字符串。

我希望原来那里的换行符重新出现。插入回文本区域时,如何使换行符按应有的方式显示?

注意:不能只将它们转换为 a <br>,因为这是在一个文本区域内,<br>元素不会被渲染,而只是作为文本写出。我想要实际的换行符。

4

4 回答 4

5

每个人都建议将换行符转换为<br />,但是正如您在问题中所说的那样,这不是您想要的。您想再次在 textarea 中显示换行符。所以,你需要的是stripcslashes()- 这将剥离\n并给你你所追求的,是你的文本区域中的换行符,而不是文本区域<br />中的 html 标签:

PHP:条带斜杠

用法:

echo stripcslashes($input_text);
于 2014-10-28T01:17:30.210 回答
0

你可以使用这样的东西:

echo nl2br($someText);
于 2013-09-18T12:00:26.930 回答
-1

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).

于 2013-03-22T20:48:04.963 回答
-1

这是我在处理此类问题时通常会做的事情:

  1. 将任何数据接收器保存在表单中。这意味着,如果用户使用换行符,则以这种方式存储。不要改变它。
  2. 显示数据后,将每个换行符转换为<br />

    echo str_replace("\n", "<br />", $data);
    

使用这种技术,您可以在 textarea 中保留用户使用的任何格式数据。

于 2012-11-18T00:36:58.703 回答