使用PHP反转FILTER_SANITIZE_SPECIAL_CHARS

时间:2012-05-20 04:30:51

标签: 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; ***/

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

1 个答案:

答案 0 :(得分:3)

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