【问题标题】:How to avoid HTML conversion of data retrieved from MySQL如何避免对从 MySQL 检索到的数据进行 HTML 转换
【发布时间】:2012-06-09 14:17:09
【问题描述】:

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

5 fruits names are - 
Mango
Orange
Apple
Banana
Grapes

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

如何避免?

【问题讨论】:

  • nl2br()
  • @deveshagrawal 你为什么要存储在一起???你的设计不对他们...
  • 我正在使用 perl 从 mysql 中获取数据,并将其传递给 HTML 模板文件。
  • @jcho360 其实这是我的要求。数据可以是任何形式。单个单词,单行,多行等......你可以像我们在stackoverflow中提问一样比较它。所以它将在单列中。对吗?

标签: mysql html perl


【解决方案1】:

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

【讨论】:

  • 检查我的answer 是否有类似于 nl2br() php 的 perl 函数
  • 注意:问题被标记为perl,而不是php
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    在Perl中使用这个,和nl2br一样。

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

    【讨论】:

    • 非法除以零。检查您的正则表达式分隔符。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多