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

Displaying whitespace in HTML when pulling from MySQL TEXT column

提问人:Ryan Ische 提问时间:10/1/2008 更新时间:10/9/2008 访问量:6932

问:

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

php mysql html

评论

0赞 Paige Ruten 10/1/2008
将空格转换为换行符和换行符转换为 <br />有什么问题?
0赞 Ryan Ische 10/1/2008
只是个人喜好 - 看起来 HTML/CSS 解决方案在这里最有意义,因为查看源代码时标记中存在空格。

答:

11赞 Vincent McNabb 10/1/2008 #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+ */
}

取自本站

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

2赞 Wayne 10/1/2008 #2

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

由于 HTML 无法识别空格,因此您唯一的选择是将多个空格更改为“&nbsp;”,将换行符更改为 <br />,使用 <pre> 标记,或指定 css 样式“white-space: pre”。

1赞 Cade Roux 10/1/2008 #3

关于div的问题,你总是可以让它滚动,或者向下调整字体(这甚至可以根据服务器端代码中最长行的长度动态地进行)。

3赞 Ian Oxley 10/9/2008 #4

你可以只使用 PHP 的 nl2br 函数