5

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

有没有一种简单的方法可以逆转 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; ***/

所有的想法将不胜感激。提前致谢。

4

1 回答 1

3

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

于 2012-05-20T04:56:56.770 回答