我像这样在 MySQL 中存储数据-
5 fruits names are -
Mango
Orange
Apple
Banana
Grapes
我能够将数据存储在 MySQL 的新行中。但是在取回它(使用选择查询)时,它会以 HTML 形式显示在一行中。
如何避免这种情况?
在 Perl 中使用它,它与nl2br相同。
sub nl2br {
my $t = shift or return;
$t =~ s{([\r\n])}{<br />$1}g;
return $t;
}
HTML 不支持换行符。用于nl2br()
将纯文本转换为 HTML 标记,其中将包含“换行符”。
如果我是你,我会用昏迷存储它,当你显示时进行替换,如下所示:
mysql> create table fruits (fruit varchar(200));
Query OK, 0 rows affected (0.04 sec)
mysql> insert into fruits values ('banana, apple, orange, grapes');
Query OK, 1 row affected (0.03 sec)
mysql> select * from fruits;
+-------------------------------+
| fruit |
+-------------------------------+
| banana, apple, orange, grapes |
+-------------------------------+
1 row in set (0.00 sec)
mysql> select replace(fruit,',','<br />') from fruits;
+----------------------------------------------+
| replace(fruit,',','<br />') |
+----------------------------------------------+
| banana<br /> apple<br /> orange<br /> grapes |
+----------------------------------------------+
1 row in set (0.00 sec)
并且您不必以您想要的方式显示列表,只需更改
您想要的任何标签的标签
或者如果你想要一个列表,你可以使用这个
mysql> select concat('<ol><li>',replace(fruit,',','</li><li>'),'</li></ol>') from fruits;
+-------------------------------------------------------------------------+
| concat('<ol><li>',replace(fruit,',','</li><li>'),'</li></ol>') |
+-------------------------------------------------------------------------+
| <ol><li>banana</li><li> apple</li><li> orange</li><li> grapes</li></ol> |
+-------------------------------------------------------------------------+
1 row in set (0.00 sec)
由于我对您的代码一无所知,我最好的猜测是您没有使用任何格式。如果您使用 php 或 scriptlet 来检索您的数据,您可以将所有数据放入可能是一个数组并以 html 格式在循环中打印该数组。您还可以使用 AJAX 并以您希望在 HTML 中显示的方式将其打印出来。如果您发布一些代码会很有帮助。
在您的情况下,只需将所有替换\n
为<br />
.