如何避免从MySQL检索的数据的HTML转换

时间:2012-06-05 14:41:12

标签: mysql html perl

我在MySQL中存储数据 -

5 fruits names are - 
Mango
Orange
Apple
Banana
Grapes

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

如何避免?

5 个答案:

答案 0 :(得分:3)

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

sub nl2br {
  my $t = shift or return;
  $t =~ s{([\r\n])}{<br />$1}g;
  return $t;
}

答案 1 :(得分:1)

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

答案 2 :(得分: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)

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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