使用序列化,并删除反斜杠转义斜杠

时间:2016-08-23 16:14:22

标签: php angularjs serialization backslash

我正在序列化一个字符串,以便能够发送到php脚本,但该函数将字符串保留为/而不是/。 我想从字符串中删除\

你能帮助我吗?

我使用的功能:

$scope.serialize = function(obj, prefix) {
    var str = [];
    for(var p in obj) {
        if (obj.hasOwnProperty(p)) {
          var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p];
          str.push(typeof v == "object" ?
            serialize(v, k) :
            encodeURIComponent(k) + "=" + encodeURIComponent(v));
        }
    }
    return str.join("&");
}

我正在使用此功能发送到文件:

$scope.send = function(){

    // sendToServer.f($scope.serialize($scope.line))
    sendToServer.f($scope.line)
        .success(function(){
            console.log('SUCESS ! sent to angualar-seed/db.jsonp, using appendToDb.php !')
        })
        .error(function(){
            console.log('ERROR !')
        });
}

FYI将字符串发送到php的函数是:

services.js:

.service('sendToServer', [
    '$http',
    function ($http) {
        'use strict';

        this.f = function (dataToSend) {
            return $http({
                url: 'http://id:pwd@bodlip.com/angular-seed/appendToDb.php',
                method: "POST",
                data: dataToSend,
                headers : {
                    'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
                }
            });
        };
    }
])

我以为我应该在php中这样做,我把它放在我的php文件中:

 $data[] = $_POST;

//file_put_contents('log.txt', print_r($data, true), FILE_APPEND);

function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

$data = stripslashes_deep($data);

1 个答案:

答案 0 :(得分:0)

我将此行添加到我的代码中:

$line = str_replace('\\', '', $line);