显示数据库中的空格

时间:2013-12-30 18:43:54

标签: php mysql

所以我正在为我的页面制作评论部分,我正在努力使它们正常工作。 问题是当我将注释保存到DB时,例如:

My comment
  {
     ohh
  }

当像echo $comment一样显示时,我得到:

My comment { ohh }

所以我用以下方法解决了这个问题:

nl2br(preg_replace('/(\r)|(\n)/', '<br>', $comment->text));

现在我明白了:

My comment
{
ohh
}

但我需要显示第一个变体。当我讨价还价时,它给了我:

string(36) "My comment
{
ohh
}"

在db中,它存储了所有缩进的注释。

所以问题:我如何用空格正确显示评论。还有一个额外的问题,我如何将这些注释存储到DB中,只允许4个后续空格,在开头或中间都没关系。

3 个答案:

答案 0 :(得分:3)

一种解决方案(可能不理想)是将文本包装在<pre></pre>中,例如:

<pre><?php echo $comment; ?></pre>

答案 1 :(得分:2)

另一种解决方案(也可能不理想)是用HTML不间断空格替换空格。您可以将其包裹在“<br>”新功能中:

str_replace(' ', '&nbsp;', preg_replace('/(\r)|(\n)/', '<br>', $comment->text))

答案 2 :(得分:1)

在插入数据库之前,您可以将空格转换为&nbsp;

$_POST['code_field'] = str_ireplace(' ' , '&nbsp;' , $_POST['code_field']);

如果您允许编辑评论,请将&nbsp;转换回常规空间。

$row['code_field'] = str_ireplace('&nbsp;' , ' ' , $row['code_field']);