我有一个包含2列的MySQL表:
text:存储多行文本,该文本可以以\n, \r, \r\n...的形式进行换行。文本是通过webform插入的,任何浏览器都可以在任何OS.line_break:上插入文本,表示这个特定文本将使用何种类型的中断(可以是\n、<br>、<br />、.)。这也是由用户通过webform插入的。。
然后,在PHP中进行替换:
$text = preg_replace ("/(\r\n|\r|\n)/", $row['line_break'], $row['text']);有趣的是,如果行中断以\n的形式存储在DB中,我将实际显示\n而不是换行符。另一方面,以下regexp将正确工作:
$text = preg_replace ("/(\r\n|\r|\n)/", "\n", $row['text']);我需要如何在DB中存储换行符才能正确地“工作”?
发布于 2011-10-01 08:39:45
在php中,"\n"是一个特殊的符号,用于编写表示‘换行’的特殊字符。但是,如果将实际文本\n存储在数据库中,则只有该文本,而不是断行字符。在用PHP编写'\n'或"\\n"时,您就有了所得到的东西。确保将实际的断行字符存储在数据库中,而不是文字\n文本中。
https://stackoverflow.com/questions/7619112
复制相似问题