0

在客户端,我正在使用 JavaScript 对象数组。在提交时,我需要将其与表单一起发送到 PHP,并在服务器端进一步操作数据。

因此,当在 JavaScript 端构建或更改对象数组时,我将其保存到隐藏输入中。它以预期的形式通过,但问题是,如果我在解码之前不这样做,它就会json_decode返回。NULLstripslashes

当我使用 PHP > 5.5 时,Magic Quotes 已关闭,并且get_magic_quotes_gpc()总是返回FALSE.

为什么在这种情况下我需要使用stripslashes,并且在任何关闭了魔术引号的生产服务器上都会出现这种情况吗?

PS:目前我仍在开发 Windows 上的开发环境和EasyPHP本地服务器。

服务器端发布的数据看起来像(var_dump):

我使用 WordPress 作为我的应用程序的容器。

string(5045) "[{\"address_components\":[{\"long_name\":\"Flughafenstrasse\",\"short_name\":\"Flughafenstrasse\"...
4

1 回答 1

2

我正在开发的应用程序是一个 WordPress 插件,因为它集成在 WordPress 中。事实证明,WordPress(截至当前版本:3.8.1)在加载时为 GET 和 POST 数据添加了斜杠(引号)。即使 PHP > 5.4 并且get_magic_quotes_gpc返回0的数据仍然被转义。

解决方案很简单,stripslashes如果您使用 WordPress,但谁知道 WordPress 何时会禁用此类行为,您的应用程序将再次出现问题 :)

该问题的一些链接:

于 2014-02-19T09:25:28.137 回答