【发布时间】:2012-05-27 02:23:57
【问题描述】:
这是一个简单的问题,但我是新手,所以请原谅我的简单问题。
是否有一种简单的方法可以反转 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: <li><script>!@#$%^&* \'#foo</script><br><p /><li /> ***/
我们将不胜感激所有想法。提前致谢。
【问题讨论】:
-
你试过htmlspecialchars_decode()吗?这至少可以帮助您完成大部分工作,并且可能就足够了,具体取决于转义的数据。
-
@jedwards 什么也没做。您只是将其用作 htmlspecialchars_decode($myString) 吗?
-
$out = htmlspecialchars_decode($in); echo $out;-- 类似的东西。过滤后的文本是什么样的? -
也可以考虑html_entity_decode()
-
@jedwards 天才的回答简直不敢相信我在所有的谷歌搜索中都找不到。如果您将其作为答案,我会将其标记为已解决。非常感谢我的朋友。 :-)