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

时间:2008-10-01 00:12:20

标签: php mysql html

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

4 个答案:

答案 0 :(得分:11)

您可以使用以下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中定义(尚未完成标准),但大多数浏览器似乎都支持它。

答案 1 :(得分:2)

你有两个相互竞争的要求。您希望内容适合某个区域(即:宽度:300px),或者您希望在用户输入时保留空白和换行符。你无法做到这两点,因为一个 - 按照定义 - 会干扰另一个。

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

答案 2 :(得分:2)

你可以使用PHP的nl2br function

答案 3 :(得分:1)

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