使用 PHP 反转 FILTER_SANITIZE_SPECIAL_CHARS

Bre*_*ett 5 php filter

这是一个简单的问题,但我是新手,所以请原谅我的简单问题。

有没有一种简单的方法可以逆转 FILTER_SANITIZE_SPECIAL_CHARS 过滤器的影响?如果不是,你将如何扭转它。请不要只说正则表达式,而是实际建议如何。需要明确的是,我不想反转字符串。

这是一些示例代码,可以帮助解释我想要做什么:

/*** a string with tags ***/
$string = "<li><script>!@#$%^&*\n\'#foo</script><br><p /><li />";

/*** sanitize the string ***/
$x = filter_var($string, FILTER_SANITIZE_SPECIAL_CHARS);
echo $x . "<br>\n";

/*** I want this to output <li><script>!@#$%^&*\n\'#foo</script><br><p /><li /> ***/
echo htmlspecialchars_decode($x);
/*** instead it outputs: &#60;li&#62;&#60;script&#62;!@#$%^&#38;*&#10;\&#39;#foo&#60;/script&#62;&#60;br&#62;&#60;p /&#62;&#60;li /&#62; ***/
Run Code Online (Sandbox Code Playgroud)

所有的想法都会受到赞赏。提前致谢。

jed*_*rds 3

考虑html_entity_decode()一个更全面的版本htmlspecialchars_decode()