尽管禁用“魔术引号”,PHP/WordPress 仍自动转义
问:禁用魔术引号功能(通过 get_magic_quotes_gpc() 返回 0 ),为什么 POST 数据在 PHP/WordPress 中继续自动转义?
答:虽然可以关闭魔术引号,但 WordPress 引入了自己的 POST 数据转义机制。这是由于 WordPress 错误跟踪器 (http://core.trac.wordpress.org/ticket/18322) 中描述的已知问题造成的。
要解决此问题,您可以使用 stripslashes_deep()函数,如 WordPress Codex (http://codex.wordpress.org/Function_Reference/stripslashes_deep) 建议的那样:
<code class="php">$_GET = array_map('stripslashes_deep', $_GET); $_POST = array_map('stripslashes_deep', $_POST); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_SERVER = array_map('stripslashes_deep', $_SERVER); $_REQUEST = array_map('stripslashes_deep', $_REQUEST);</code>
注意:虽然这种方法可以有效地去除斜杠,但建议考虑其他方法正如 Alexander O'Mara 和 Quickshiftin 所建议的,“本地剥离”而不覆盖超全局变量。
以上是为什么即使禁用了 Magic Quotes,POST 数据在 PHP/WordPress 中仍然会自动转义?的详细内容。更多信息请关注PHP中文网其他相关文章!