在PHP中将标签转换为字符串[重复]
Posted
技术标签:
【中文标题】在PHP中将标签转换为字符串[重复]【英文标题】:Converting tags to strings in PHP [duplicate] 【发布时间】:2016-03-17 21:47:50 【问题描述】:有一个名为 strip_tags() 的函数可以从输入中删除所有标签,我想知道是否有一个函数不是从输入中删除所有标签,而是将它们转换为字符串,就像 *** 在我们缩进我们的代码。如果没有,我应该用什么代替?
输出:
斜体
需要输出:
<i> italic </i>
【问题讨论】:
它没有转换为字符串,它正在转义,因此它们不会被处理。使用htmlspecialchars()
或类似函数来实现。
【参考方案1】:
您可以使用 cmets 中所说的 htmlspecialchars() 或手动操作。
$str = "<i>something</i>";
echo str_replace("<", "<", $str);
【讨论】:
【参考方案2】:你想要的函数是http://php.net/manual/en/function.htmlspecialchars.php。
代码:
$string = '<i> italic </i>';
echo htmlspecialchars($string);
演示:https://eval.in/483903
输出:
<i> italic </i>
在浏览器中将呈现为:
斜体
【讨论】:
所以这与 strip_tags() 的作用相同,因为它不允许用户在我们的网站上执行脚本,对吧? 这会将元素转换为等效的实体。 Strip_tags 实际上删除了元素本身。用户仍然可以使用这种方法进行 XSS 注入,但这取决于您的输出方式。引号可以用来关闭属性,然后可以添加onclick
等..
如果我们把它和mysqli_real_escape_string结合起来呢?
对XSS注入没有影响;这是用于 SQL 注入的。
在这种情况下我们应该怎么做呢?【参考方案3】:
您可以使用html<pre>
标签。
【讨论】:
以上是关于在PHP中将标签转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在PHP中将字符串[基本上是逗号分隔的数字]转换为整数的最佳方法[重复]