额外的斜杠来自json数组

时间:2015-10-24 15:05:09

标签: javascript php jquery arrays json

我在可嵌套的拖放上工作。当我拖放tile时它会在textarea中生成一个free(line_readed);的数组。现在,当我在行动页面中发布此数组时,它发布了[{},{"id":267},{"id":266}]。为什么这个额外的斜杠出现在数组中。在操作页面中,我使用json_decode转换此数组。现在我如何从数组中删除此斜杠或如何忽略我通过jsondecode成功解码此数组的数组。

[{},{\"id\":267},{\"id\":266}]

2 个答案:

答案 0 :(得分:1)

听起来像是在服务器上设置了Magic Quotes。这是PHP的一个旧的,已弃用的功能,其中任何请求数据都会自动使用斜杠进行转义,而不管是什么。您可以按照listed here说明禁用它们。从该页面开始,任何这些都应该有效,具体取决于您有权访问:

在php.ini

如果您有权访问php.ini,这是最有效的选择。

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

在.htaccess

如果您无权访问php.ini:

php_flag magic_quotes_gpc 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);
}
?>

答案 1 :(得分:0)

下面将删除数组中的第一个对象但是并没有真正解决为什么首先添加它的真正问题?

var arr = [{},{\"id\":267},{\"id\":266}];
arr.splice(0,1);