1

我目前正在使用此代码从数据库中打印多行文本

$query_content= "select * from home ";
$result_content= mysql_query($query_content,$con);
while ($text = mysql_fetch_array($result_content))
{
    $content = $text['homecontent']; 
}

并使用此 HTML 代码:

<p> 
<?php print $content; ?>
<p/>

数据库中的文本是:

abc
def
ghi

但我得到了这个

abc def ghi

有任何想法吗?

谢谢。

4

2 回答 2

5

为此,您可以使用 php 中的内置函数nl2br。它将\n\r(新行)转换为 html 的<br>.

<p> 
    <?php
        print nl2br( $content );
    ?>
<p/>

如果并且希望您有一个与 xhtml 或 html5 兼容的网站,您应该将第二个参数设置true为使<br>xhtml 兼容,<br />

<p> 
    <?php
        print nl2br( $content, true );
    ?>
<p/>
于 2012-08-01T03:12:19.707 回答
3
echo str_replace(array("\r\n", "\n", "\r"), "<br>", $content);

问题在于,在文本中你有一个换行符“\n”、“\r”或他的组合,在 html 中显示为空格(空格字符)。要在 html 中插入真正的“换行符”,<br/>必须使用标签。因此,我编写了将所有换行符替换为 <br> html-tag 的简单示例。

在 php 中存在string nl2br ( string $string [, bool $is_xhtml = true ] )几乎相同的特殊功能,但我认为更快更正确。

于 2012-08-01T03:07:21.683 回答