从 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 函数来将空格转换为   并将新行转换为 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 中显示空格的主要内容,如果未能解决你的问题,请参考以下文章