从 MySQL TEXT 列中提取时在 HTML 中显示空格

Posted

技术标签:

【中文标题】从 MySQL TEXT 列中提取时在 HTML 中显示空格【英文标题】:Displaying whitespace in HTML when pulling from MySQL TEXT column 【发布时间】:2010-09-14 09:59:41 【问题描述】:

我已将来自 textarea 元素的输入保存到 mysql 中的 TEXT 列。我正在使用 php 将该数据从数据库中提取出来,并希望在 p 元素中显示它,同时仍显示用户输入的空格(例如多个空格和换行符)。我尝试了一个 pre 标签,但它不遵守包含 div 元素中设置的宽度。除了创建一个 PHP 函数来将空格转换为 &nbsp 并将新行转换为 br 标记之外,我还有哪些选择?我更喜欢干净的 html/CSS 解决方案,但欢迎任何输入!谢谢!

【问题讨论】:

将空格和换行符转换为有什么问题? 只是个人喜好 - 看起来 HTML/CSS 解决方案在这里最有意义,因为在查看源代码时标记中存在空格。 【参考方案1】:

您可以使用以下 CSS 使 pre 内的文本换行

pre 
 white-space: pre-wrap;       /* css-3 */
 white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 white-space: -pre-wrap;      /* Opera 4-6 */
 white-space: -o-pre-wrap;    /* Opera 7 */
 word-wrap: break-word;       /* Internet Explorer 5.5+ */

取自this site

它目前在 CSS3 中定义(尚未完成的标准),但大多数浏览器似乎都支持它,根据 cmets。

【讨论】:

【参考方案2】:

你可以只使用 PHP 的 nl2br function。

【讨论】:

【参考方案3】:

您有两个相互竞争的要求。您要么希望内容适合特定区域(即:宽度:300px),要么希望在用户输入时保留空格和换行符。你不能两者都做,因为一个 - 根据定义 - 会干扰另一个。

由于 HTML 不支持空格,您唯一的选择是将多个空格更改为“ ”并将换行符更改为 ,使用

 标记,或指定 css 样式“white-space: pre”。
    

【讨论】:

【参考方案4】:

关于 div 的问题,您始终可以使其滚动,或向下调整字体(甚至可以根据服务器端代码中最长行的长度动态调整)。

【讨论】:

以上是关于从 MySQL TEXT 列中提取时在 HTML 中显示空格的主要内容,如果未能解决你的问题,请参考以下文章

从 MySQL JSON 列中提取 JSON 对象的值作为数组

MySql:从同一张表的三个不同列中提取不同的条目

从包含 XML 的 sql 列中提取值

Python - 从列中提取/复制分隔文本到新列 xlsx

从文本 MySql 中提取 OrderID

如何从 MySQL 中的数字键嵌套 JSON 字段中提取值