为什么PHP echo的文本会丢失其格式?

Rog*_*ger 7 php formatting

任何想法为什么格式化文本来自数据库,当在PHP中回显时丢失其格式,即没有新的行?谢谢!

在此输入图像描述

daG*_*vis 27

使用nl2br().

浏览器会忽略新行.这就是为什么你看到没有换行符的所有文字.nl2br()将新行转换<br />为在浏览器中显示为新行的标记.

如果要显示文本<textarea>,则无需将所有新行转换为<br />.无论如何,如果你这样做......你会<br />在新行的地方看到" "作为文本.


Tob*_*ias 14

因为格式没有html标签!试试nl2br功能.


rad*_*zio 9

你可以尝试添加nl2br()功能......

这样的事情: echo nl2br($your_text_variable);

它应该工作;-)


tak*_*hin 7

原因

这是所有用户代理的默认行为.如果查看页面源代码,您将看到文本的格式与数据库(或textarea)中的格式相同.

你的困惑的原因可能是你曾经看到的文本<textarea>标签,显示预格式化文本,不解释的标签,并在文中解释另一种情况(空白并不重要,在这种情况下).

浏览器不显示新行,除非特别要求 - 使用<br>标记或任何块级标记.

没有标签==没有新行.

修复

如果将预格式化的文本存储在数据库中,
则应将输出包装在<pre>标记中.

您可能需要格式化字符转换到你所需要使用的功能设定,如HTML标签nl2br,str_replace等等.

您还可以更正结构以将HTML存储在数据库中,而不仅仅是纯文本(但标记看起来更像是一个更好的解决方案).

看到类似的问题: