【问题标题】:Reverse FILTER_SANITIZE_SPECIAL_CHARS with PHP使用 PHP 反转 FILTER_SANITIZE_SPECIAL_CHARS
【发布时间】: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: &#60;li&#62;&#60;script&#62;!@#$%^&#38;*&#10;\&#39;#foo&#60;/script&#62;&#60;br&#62;&#60;p /&#62;&#60;li /&#62; ***/

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

【问题讨论】:

  • 你试过htmlspecialchars_decode()吗?这至少可以帮助您完成大部分工作,并且可能就足够了,具体取决于转义的数据。
  • @jedwards 什么也没做。您只是将其用作 htmlspecialchars_decode($myString) 吗?
  • $out = htmlspecialchars_decode($in); echo $out; -- 类似的东西。过滤后的文本是什么样的?
  • 也可以考虑html_entity_decode()
  • @jedwards 天才的回答简直不敢相信我在所有的谷歌搜索中都找不到。如果您将其作为答案,我会将其标记为已解决。非常感谢我的朋友。 :-)

标签: php filter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2013-12-23
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多