WordPress 中 POST 数据的神秘自动转义
尽管通过 php.ini 禁用了魔术引号,PHP 和 WordPress 仍然继续自动转义POST 数据包含单引号。这个令人困惑的问题让开发者摸不着头脑。
WordPress 自动转义的起源
自动转义的根本原因在于 WordPress 的引导过程。 WordPress 初始化时,会激活一段代码,自动转义用户输入中的某些字符。
自动转义的解决方案
要解决此问题,建议:使用以下代码临时覆盖全局变量:
$_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);
或者,您可以考虑使用更有针对性的方法,通过“本地剥离”而不是覆盖超全局变量。例如:
$post = array_map('stripslashes_deep', $_POST);
其他注意事项
覆盖超全局变量可能会影响应用程序的其他部分。因此,请仔细评估它是否适合您的具体情况。
@Alexander O'Mara 和 @quickshiftin 的进一步见解为该主题提供了宝贵的观点。
以上是为什么 WordPress 自动转义在禁用 Magic Quotes 后仍会发布数据?的详细内容。更多信息请关注PHP中文网其他相关文章!