提问人:Ryan Ische 提问时间:10/1/2008 更新时间:10/9/2008 访问量:6932
从 MySQL TEXT 列中提取时在 HTML 中显示空格
Displaying whitespace in HTML when pulling from MySQL TEXT column
问:
我已将 textarea 元素的输入保存到 MySQL 中的 TEXT 列。我正在使用 PHP 将该数据从数据库中提取出来,并希望将其显示在 p 元素中,同时仍然显示用户输入的空格(例如多个空格和换行符)。我尝试过 pre 标签,但它不服从包含 div 元素中设置的宽度。除了创建一个 PHP 函数来将空格转换为   并将新行转换为 br 标签之外,我还有什么选择?我更喜欢干净的 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 无法识别空格,因此您唯一的选择是将多个空格更改为“ ”,将换行符更改为 <br />,使用 <pre> 标记,或指定 css 样式“white-space: pre”。
1赞
Cade Roux
10/1/2008
#3
关于div的问题,你总是可以让它滚动,或者向下调整字体(这甚至可以根据服务器端代码中最长行的长度动态地进行)。
3赞
Ian Oxley
10/9/2008
#4
你可以只使用 PHP 的 nl2br 函数。
评论