【发布时间】:2020-06-05 03:32:11
【问题描述】:
任何想法为什么来自 DB 的格式化文本,当在 php 中回显时会丢失其格式,即没有新行?谢谢!
【问题讨论】:
-
echo 没问题,你只是错过了一些东西。您希望输出如何?
-
恐怕你得学html。
标签: php formatting
任何想法为什么来自 DB 的格式化文本,当在 php 中回显时会丢失其格式,即没有新行?谢谢!
【问题讨论】:
标签: php formatting
因为没有用于格式化的html标签! 试试nl2br 函数。
【讨论】:
你可以尝试添加nl2br()函数...
类似这样的:echo nl2br($your_text_variable);
它应该工作;-)
【讨论】:
" ;)
这是所有用户代理的默认行为。如果您查看页面源代码,您会发现您的文本具有与数据库(或 textarea)中的格式相同的格式。
你困惑的原因可能是你曾经看到<textarea>标签中的文字,它显示preformatted文字,不解释标签,另一种情况是文字被解释(在这种情况下,空格并不重要)。
浏览器不显示新行,除非特别要求 - 使用 <br> 标签或任何块级标签。
没有标签 == 没有新行。
如果您将预先格式化的文本存储在数据库中,
您应该将输出包装在 <pre> 标记中。
您可能希望使用 nl2br、str_replace 等函数集将格式化字符转换为所需的 HTML 标记。
您还可以更正您的结构以将 HTML 存储在数据库中,而不仅仅是纯文本(但是标记看起来是更好的解决方案)。
查看类似问题:
【讨论】:
您显示的两张图片之间的区别在于,一张在<textarea></textarea> 中有文字,而另一张没有...如果您想要 1:1:<textarea><?php echo $yourVariable;?></textarea>
【讨论】:
它确实输出你所说的输出。如果文本已预先格式化,请将其放在输出脚本的 HTML <pre></pre> 标记内。
【讨论】:
这应该有助于回答。 How do I keep whitespace formatting using PHP/HTML?enter link description here
为数据库的输入和显示页面的输出设置字符串预处理代码
【讨论】: