没有来自mysql的php回应换行符

时间:2010-12-04 09:10:37

标签: php html

我的网站上有一个新闻栏目,通过ajax进行内联编辑。我写了一些文本,它被存储并显示出来。

但由于某些原因,他们称之为没有新行或换行符。我尝试了很多东西。显示换行符的唯一方法是手动按“Enter”键。否则,wordwrap和nl2br都没有帮助。

echo ' <span class="subheader">  <strong>'.$array["title"].
     '</strong>  </span>  <br />  '.
     '<div style="margin: 0px 0px 0px 10px; width="20px"">'.
     '  <div id="quickDeleteNewsItem">  '.
     '<div style="width:20px;" id="post_message_'.
     $array['id'].'" style="display: inline;">'.
     $array["content"].'</div>  </div>  </div>  ';

4 个答案:

答案 0 :(得分:0)

为了回答这个问题,我们需要看一些代码。

当您预计换行时,echo会使用哪些代码?

根据现在发布的信息,我只能说:如果您在查看<div> / <p>中的文字时没有看到换行符,则需要使用换行符({{ 1}})或将新闻部分中的每段文字放在块级元素中,例如<br />标记。

答案 1 :(得分:0)

在通过ajax发布时,尝试使用encodeURIcomponent对内容进行编码。

content = encodeURIComponent(content);

答案 2 :(得分:0)

我认为我们需要查看更多代码。我可以想到数据至少保存在三个位置:

  • 在您的页面上进行编辑
  • 在您的页面上查看
  • 在数据库中

和两种类型的换行符:

  • 按下Enter键后的硬断(适用于所有三个数据存储)
  • 软断裂,其中线条比包含它的框长(适用于textarea和div,可能在不同的单词之间)。

听起来你在textarea中看到了软中断,但是当使用javascript(或使用php和数据库将文本移动到div)时却没有。如果是这样,那么几乎可以肯定包含div太宽 - 使用firebug(或类似的)来检查div并确保它被设置在正确的宽度。

答案 3 :(得分:-1)

用html制动器替换线制动器

str_replace("\n","<br />\n",$data)