【问题标题】:Converting tags to strings in PHP [duplicate]在PHP中将标签转换为字符串[重复]
【发布时间】:2016-03-17 21:47:50
【问题描述】:

有一个名为 strip_tags() 的函数可以从输入中删除所有标签,我想知道是否有一个函数不是从输入中删除所有标签,而是将它们转换为字符串,就像 stackoverflow 在我们缩进我们的代码。如果没有,我应该用什么代替?

输出:

斜体

需要输出:

<i> italic </i>

【问题讨论】:

  • 它没有转换为字符串,它正在转义,因此它们不会被处理。使用htmlspecialchars() 或类似函数来实现。

标签: php tags strip-tags


【解决方案1】:

您可以使用 cmets 中所说的 htmlspecialchars() 或手动操作。

$str = "<i>something</i>";

echo str_replace("<", "&lt;", $str);

【讨论】:

    【解决方案2】:

    你想要的函数是http://php.net/manual/en/function.htmlspecialchars.php

    代码:

    $string = '<i> italic </i>';
    echo htmlspecialchars($string);
    

    演示:https://eval.in/483903

    输出:

    &lt;i&gt; italic &lt;/i&gt;
    

    在浏览器中将呈现为:

    斜体

    【讨论】:

    • 所以这与 strip_tags() 的作用相同,因为它不允许用户在我们的网站上执行脚本,对吧?
    • 这会将元素转换为等效的实体。 Strip_tags 实际上删除了元素本身。用户仍然可以使用这种方法进行 XSS 注入,但这取决于您的输出方式。引号可以用来关闭属性,然后可以添加onclick等..
    • 如果我们把它和mysqli_real_escape_string结合起来呢?
    • 对XSS注入没有影响;这是用于 SQL 注入的。
    • 在这种情况下我们应该怎么做呢?
    【解决方案3】:

    您可以使用html&lt;pre&gt;标签。

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 2018-05-21
      • 2015-09-25
      • 2014-07-16
      • 2016-12-24
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多