正在裁剪来自DB的文本

时间:2016-12-23 18:04:46

标签: php mysqli

我正在编写一个有三页的简单网站。对于每个页面,我在DB中有一个表,其中包含要在这些页面上显示的信息的colunms。几乎像博客一样,每一行都可能是博客文章。

例如,在我的DB(作为VARCHAR)中,我可能有文本:

  

这是第1行,这是第2行,这是第3行

但是当我选择数据时,获取行并回显它,文本以某种方式被修剪:

  

这是第1行这是第2行这是第3行

当我查看数据库中的字段时,文本格式正确,但在网站上显示错误。

require('.connection.php');

if(isset($_GET['menyValg'])){
    $menyValg = $_GET['menyValg'];

    switch($menyValg){
        case "Hovedside":
            $sql = "SELECT tittel, tekst FROM hovedside";
            break;
        case "Tjenester":
            $sql = "SELECT tittel, tekst FROM tjenester";
            break;
        case "Kontakt":
            $sql = "SELECT tittel, tekst FROM kontakt";
            break;
        default:
            $sql = "SELECT tittel, tekst FROM hovedside";
    }
}else{
    $sql = "SELECT tittel, tekst FROM hovedside";
}

$result = $connection->query($sql);

if($result->num_rows > 0){
    while($row = $result->fetch_assoc()){
            echo "<h2 class='contentTittel'>".$row['tittel']."</h2><p class='contentP'>".$row['tekst']."</p><br>";
    }
}else{
    //could not find any data
}

2 个答案:

答案 0 :(得分:2)

您可以使用两种方法来完成,第一种方法是使用nl2br将新的换行符转换为<br />

echo nl2br($row['tekst']);

或者您可以回复<pre>标记内的文字。

答案 1 :(得分:1)

数据库中的换行符实际上是作为换行符打印的(如果您检查源代码),但HTML在打印数据时无法识别换行符 - 为此,您需要转换所有换行符到<br />代码。

最简单的方法是使用nl2br()函数,就像这样。

echo "<h2 class='contentTittel'>".$row['tittel']."</h2><p class='contentP'>".nl2br($row['tekst'])."</p><br>";

请参阅http://php.net/manual/en/function.nl2br.php