0

我正在使用带有输入文本区域的 HTMLPurifier,用户可以在其中放置他们的 HTML 标记。配置是默认的:

        $config = HTMLPurifier_Config::createDefault();
        $purifier = new HTMLPurifier($config);
        $_POST['txt'] = $purifier->purify($_POST['txt']);

我遇到的问题是当用户>在文本中添加一些内容时,例如:

<p>Some text > other text </p>

这将转换为:

<p>Some text &gt; other text </p>

有没有办法阻止这种转换?不做遗忘:

$_POST['txt'] = str_replace('&gt;','>',$_POST['txt']);
4

2 回答 2

1

你可能知道&gt;html 的特殊字符>。浏览器将正确渲染所有内容。

您可以尝试使用htmlspecialchars_decode将所有特殊字符解码为原始值。

于 2012-12-21T01:57:34.213 回答
1

如果没有发生这种转换,则 HTML 将无效。如果这就是你想要的,可能会有一个配置选项。

于 2012-12-21T06:26:49.390 回答