1

我像这样在 MySQL 中存储数据-

5 fruits names are - 
Mango
Orange
Apple
Banana
Grapes

我能够将数据存储在 MySQL 的新行中。但是在取回它(使用选择查询)时,它会以 HTML 形式显示在一行中。

如何避免这种情况?

4

5 回答 5

3

在 Perl 中使用它,它与nl2br相同。

sub nl2br {
  my $t = shift or return;
  $t =~ s{([\r\n])}{<br />$1}g;
  return $t;
}
于 2012-06-05T14:46:12.560 回答
1

HTML 不支持换行符。用于nl2br()将纯文本转换为 HTML 标记,其中将包含“换行符”。

于 2012-06-05T14:43:12.667 回答
1

如果我是你,我会用昏迷存储它,当你显示时进行替换,如下所示:

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)
于 2012-06-05T14:56:59.997 回答
0

由于我对您的代码一无所知,我最好的猜测是您没有使用任何格式。如果您使用 php 或 scriptlet 来检索您的数据,您可以将所有数据放入可能是一个数组并以 html 格式在循环中打印该数组。您还可以使用 AJAX 并以您希望在 HTML 中显示的方式将其打印出来。如果您发布一些代码会很有帮助。

于 2012-06-05T14:51:07.777 回答
0

在您的情况下,只需将所有替换\n<br />.

于 2012-06-05T14:44:13.033 回答