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

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

【问题讨论】:

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

标签: php mysql html


【解决方案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 的问题,您始终可以使其滚动,或向下调整字体(甚至可以根据服务器端代码中最长行的长度动态调整)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-07
          • 2012-05-09
          相关资源
          最近更新 更多