我有一个存储在mysql中的内容,如下所示:
first line
second line
third line
但是当我使用echo函数时,它会像这样显示输出
first line second line third line
但是我希望将输出完全显示为保存在mysql中。
答案 0 :(得分:5)
您正在输出它,就像MySQL存储它一样。浏览器设置为以不同于输出的方式显示它,因为您正在将文本内容输出到HTML页面。 (特别是,它不会为您输出的每个换行显示换行符)。
要使其正确显示HTML,您需要使用换行符替换换行符,nl2br
是一个非常有用的功能。
强制浏览器按照您的意图显示它的其他方法是将内容类型设置为text/plain
而不是text/html
或使用<pre>
标记。
答案 1 :(得分:1)
echo nl2br($ str_from_db);
答案 2 :(得分:0)
在这种特殊情况下,您可以使用\n
标记替换字符串上的<br>
。
来自str_replace的PHP手册:
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; // THIS IS YOUR DB VALUE!
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);
您正在查看它,因为\n
(新行)对HTML没有新行效果。他们只是旁边显示一个。要强制换行,您需要使用<br/>
标记或表格或无序行...
答案 3 :(得分:0)
您可以将内容包装在<pre></pre>
或<code></code>
标记中,也可以为您用于显示MySQL内容的元素指定CSS属性。
例如:
CSS:
.mysql-content {
white-space: pre;
}
HTML:
<div class='mysql-content'>first line
second line
third line</div>
应该以您希望的方式显示。