在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("<", "&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;标签。

【讨论】:

以上是关于在PHP中将标签转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中将MySQL记录集转换为JSON字符串[重复]

在PHP中将字符串[基本上是逗号分隔的数字]转换为整数的最佳方法[重复]

在 PHP 中将 PDO 记录集转换为 JSON [重复]

如何在PHP中将日期YYYY-MM-DD转换为纪元[重复]

如何在 PHP 中将图像从 base 64 转换为它们的文件类型?

在java中将字符串转换为字节[重复]