如何显示内容与mysql中保存的内容完全相同

时间:2010-07-15 16:06:04

标签: php mysql

我有一个存储在mysql中的内容,如下所示:

first line
second line
third line

但是当我使用echo函数时,它会像这样显示输出

first line second line third line

但是我希望将输出完全显示为保存在mysql中。

4 个答案:

答案 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>

应该以您希望的方式显示。