【问题标题】:How can I retain cr lf chars (line formatting) in a php assignment embedded in a php echo statement?如何在嵌入 php echo 语句的 php 赋值中保留 cr lf 字符(行格式)?
【发布时间】:2014-08-20 20:40:10
【问题描述】:

当我使用 php echo 语句将包含多个 cr lf 字符对的变量(甚至是字符串文字)分配给空的 div 或 p 元素时,cr lf 将被单个空格字符(0x20)替换,因此新行格式丢失。尽管元素确实将文本换行,但文本显示为一长行。

通过查看显示的文本,cr lf 似乎消失了。我通过将显示的文本复制粘贴到十六进制编辑器来验证这一点。如何告诉 php 在文本文件中保留 cr lf 字符?这是分配代码:

echo "<div class='showBox'><p> $content </p></div>";

无论有没有封闭的 p 元素,这具有相同的结果。

【问题讨论】:

  • 这不是 php 的问题,它是 HTML 在浏览器中的呈现方式。这也是&lt;pre&gt; 的一般用途。
  • 刚刚再次检查,发现 cr lf 对没有被 cr lf 替换。正如预期的那样,它已经在文本中了。但是当然 cr lf 还是不见了。
  • @hcoat 当然,但是,“我如何告诉 php 在文本文件中保留 cr lf 字符?”如果他在 $content 中插入一个 NewLine,他就不必担心 HTML 是如何呈现的
  • 是的。将 $content 包含在
     标记中就可以了。我一直不太确定那些是干什么用的。现在我明白了。谢谢。

标签: php mysql textarea


【解决方案1】:

在偶然尝试了许多方案后,我发现了一个内置的 php 函数,它可以产生我希望的确切输出格式。通过执行 . .

$content = nl2br($content);

。 .在将 html 回显到浏览器之前。 .

echo "<div class='showBox'><p class='dispContent'>$content></p></div>";

。 .显示的输出现在保留用户使用 (ENTER) 键输入的空白​​行。

感谢两位评论者提供的宝贵提示,让我有了这个有用的发现。

【讨论】:

    猜你喜欢
    • 2012-11-11
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2019-03-14
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多