为什么 PHP 回显文本会丢失格式?

发布于 2024-11-24 23:31:03 字数 121 浏览 0 评论 0原文

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

在此处输入图像描述

Any ideas why formatted text from DB, when echo-ed out in php loses its formatting, i.e. no new lines? Thanks!

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

似梦非梦 2024-12-01 23:31:03

使用nl2br()

浏览器会忽略新行。这就是为什么您看到的所有文本都没有换行符。 nl2br() 将新行转换为
标记,显示为浏览器中的新行。

如果您想在

Use nl2br().

New lines are ignored by browser. That's why you see all text without line breaks. nl2br() converts new lines to <br /> tags that are displayed as new lines in browsers.

If you want to display your text in <textarea>, you don't need to convert all new lines to <br />. Anyway, if you do it... you will see "<br />"s as text in new lines places.

著墨染雨君画夕 2024-12-01 23:31:03

因为没有用于格式化的html标签!
尝试 nl2br 函数。

Because there are no html tags for formatting!
Try the nl2br function.

苦笑流年记忆 2024-12-01 23:31:03

您可以尝试添加 nl2br() 函数...

如下所示: echo nl2br($your_text_variable);

它应该可以工作;-)

You could try add nl2br() function...

something like this: echo nl2br($your_text_variable);

It should work ;-)

小鸟爱天空丶 2024-12-01 23:31:03

原因

这是所有用户代理的默认行为。如果您查看页面源代码,您会发现文本的格式与数据库(或文本区域)中的格式相同。

您感到困惑的原因可能是您曾经在

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

没有标签==没有新行。

解决方法

如果您在数据库中存储预先格式化的文本,
您应该将输出包装在

 标记中。

您可能希望使用nl2brstr_replace等函数集将格式化字符转换为您需要的HTML标签。

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

请参阅类似的问题:

The reason

This is the default behavior for all user agents. If you look at the page source, you'll see that your text has the same formatting like the one in the database (or textarea).

The reason of your confusion is probably that you once see the text in the <textarea> tag, which displays preformatted text, does not interpret the tags, and in the other case the text is interpreted (whitespace is not important in this case).

The browsers don't display new lines, unless specifically asked for - using <br> tag or any block level tags.

No tags == no new lines.

The fix

If you store preformatted text in the database,
you should wrap the output in the <pre> tag.

You may want to convert the formatting characters to the HTML tags you need using set of functions like nl2br, str_replace etc.

You may also correct your structure to store the HTML in the database instead of just plain text (however markup looks like a better solution).

See similar question:

浮生面具三千个 2024-12-01 23:31:03

您显示的两张图像之间的区别在于,一张在 中包含文本,而另一张则没有......如果您想要 1:1:

The difference between the two images you show is that one has the text in a <textarea></textarea> and the other does not ... if you want 1:1: <textarea><?php echo $yourVariable;?></textarea>

趴在窗边数星星i 2024-12-01 23:31:03

它确实输出你所说的输出。如果文本已预先格式化,请将其放入输出脚本中的 HTML

标记内。

It does output what you say to output. If the text is pre-formatted, put it inside the HTML <pre></pre> tag in your output script.

你与昨日 2024-12-01 23:31:03

这应该对回答有帮助。
如何使用 PHP/HTML 保持空格格式?在此处输入链接描述

设置字符串用于数据库输入和显示页面输出的预处理代码

This should be helpful in answering.
How do I keep whitespace formatting using PHP/HTML?enter link description here

Set up a string preprocessing code for both input to database and output to display page

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文