斜杠添加到JSON

时间:2013-05-29 05:52:34

标签: php json

在实时服务器中不需要的斜杠附加到编码JSON,无论单引号出现在哪里。

实际上我试图将数字重命名为Nu&#m;,只需在中间添加一个。

  

PHP Version 5.3.21

Result: {"values":"Nu\\'mber","lastvalue":"Number"}

即。 ' replaced with \\'

而在我的本地服务器中,它的工作正常

  

PHP Version 5.3.13

Result: {"values":"Nu'mber","lastvalue":"Number"}

另外,我使用了stripslashes(),但没有使用它。在某些情况下,如果我这样做,我必须重用结果JSON,附加更多斜杠。这是PHP版本问题吗?

1 个答案:

答案 0 :(得分:1)

这与magic quotes有关。你可以在php.ini或代码中关闭它们。

来自te手册,在php.ini中:

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

或者在你的php代码中:

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
相关问题