【问题标题】:How to render html tags from mysql database in PHP?如何在 PHP 中从 mysql 数据库中呈现 html 标签?
【发布时间】:2016-02-05 06:54:43
【问题描述】:

我在表格中存储 html 标签,如<ul><li>....</li></ul> 等。我想将这些值检索为 html 内容。当我检索此数据时,我想将其显示为 HTML 内容,也就是说,它应该显示项目符号而不是 <ul><li>....</li></ul>

我正在尝试的代码:

<?php echo stripslashes($row3['description'])?>

我什至尝试过htmlentities()html_entity_decode(),但都没有成功。

【问题讨论】:

  • 是的,它显示输出为&lt;ul&gt; &lt;li&gt;......&lt;/li&gt;&lt;/ul&gt;

标签: php html


【解决方案1】:

您可以使用 htmlspecialchars_decode 功能如下:

echo htmlspecialchars_decode(stripslashes($row3['description'])); 

代替

 echo stripslashes($row3['description']);

你可以在这里了解更多关于函数的信息:http://php.net/manual/en/function.htmlspecialchars-decode.php

【讨论】:

    【解决方案2】:

    使用htmlspecialchars_decode

    $str = "<ul><li></li></ul>";
    
    echo htmlspecialchars_decode($str);
    

    希望对你有帮助:)

    【讨论】:

      【解决方案3】:

      对于 laravel 用户只需这样做

      {!! $my_db_ish['my_row'] !!}
      

      而不是

      {{ $my_db_ish['my_row'] }}
      

      【讨论】:

      • 还有其他选择吗?为什么?
      • 不知道现在是否还有其他选项,但我知道第一个不会转义数据库中的值,而第二个会自动转义数据库中的值。
      【解决方案4】:

      显示 html 内容的唯一方法是简单地echo $row3['description'],但是,这会使您容易受到漏洞的影响,除非您真的信任数据(即:从不),否则您应该先清理它。你可以试试htmlpurifier

      【讨论】:

        【解决方案5】:

        不要打电话

        stripslashes、htmlentities 或 html_entity_decode

        这些是防止 HTML 代码被处理为 HTML 代码(将其转换为文本)的功能。只需尝试echo $row3['description'];。 并确保以; 结束您的行!

        您还应该检查是否以正确的方式将数据保存到 MySQL 数据库中(因此没有更改以防止数据库中的 HTML 编码)。

        此外,使用保存在用户也参与其中的 MySQL 数据库中的 HTML 代码也不是很安全。他可能会添加他自己的 HTML 代码,而您也不需要他,所以当心!!

        【讨论】:

          【解决方案6】:

          使用 htmlspecialchars_decode() 函数。它对我来说很好用......

          使用指南

          您的文本与代码

          <?php
          
              $text = " 
              <html>
              <head>
                  <title>Page Title</title>
              </head>
              <body>
                   Reference site about Lorem Ipsum, giving information on its origins, as well as a random Lipsum generator.
              </body>
              </html> ";
          
              OR
          
              $text = $row['columnname'];  // Here define your database table column name.
          
              echo htmlspecialchars_decode($text);  
          
          ?>
          

          输出:

          关于 Lorem Ipsum 的参考站点,提供有关其起源的信息,以及随机 Lipsum 生成器。

          【讨论】:

            猜你喜欢
            • 2012-09-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-04
            • 2021-12-13
            • 2019-01-09
            • 2019-09-19
            • 1970-01-01
            相关资源
            最近更新 更多