在Javascript/jQuery中解析PHP序列化数组

在Javascript/jQuery中解析PHP序列化数组,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我通过PHP将数据写入html文件,如下所示: $data = json_decode(stripslashes($_POST['data'])); if($data[0]!=''){ $_SESSION['chatCode'] = $data[2]; $fp = fopen('../sessions/chats/log_'.$data[2].'.html', 'a'); $content = array( 'author' => $data[

我通过
PHP
将数据写入
html
文件,如下所示:

$data = json_decode(stripslashes($_POST['data']));

if($data[0]!=''){
    $_SESSION['chatCode'] = $data[2];

    $fp = fopen('../sessions/chats/log_'.$data[2].'.html', 'a');

    $content = array(
        'author' => $data[1],
        'message' => $data[0],
        'time' => date('H:i:s'));

    fwrite($fp,serialize($content));
    fclose($fp);
}
然而,我正在努力解析jQuery中的序列化数据客户端。我目前的代码是:

$.get('sessions/chats/log_'+chatCode+'.html', function(data){
    $('#chatContent').html(makePretty(data));
}

function makePretty(html){
    var data = JSON.stringify(html);

    console.log(data);

    var content = '';

    for(i=0; i < data.length; i++){
        content += '<div class="msgln">'+
            '<div class="meta">'+
                '<span class="name">'+data[i]['author']+'</span>'+
                '<span class="time">'+data[i]['time']+'</span>'+
            '</div>'+
            '<div class="msg">'+data[i]['message']+'</div>'+
        '</div>';
    }

    return content;
}
$.get('sessions/chats/log\'+chatCode+'.html',函数(数据){
$('#chatContent').html(makePretty(data));
}
函数makePretty(html){
var data=JSON.stringify(html);
控制台日志(数据);
var内容=“”;
对于(i=0;i
日志文件
log\u test.html
包含:

a:3:{s:6:“作者”s:5:“e297f”s:7:“消息”s:4:“测试”s:4:“时间”s:8:“09:23:23”}a:3:{s:6:“作者”s:5:“e297f”s:7:“消息”s:4:“测试”s:4:“测试”s:4:“时间”s:4:“时间”s:4:“时间”s:8:“09:26:39”}

控制台记录:


“a:3:{s:6:\'author\'s:5:\'e297f\'s:7:\'message\'s:4:\'test\'s:4:'time\'s:8:\'09:23:23\';}”
这是因为您正在序列化($content)
数据并编写它。相反,请尝试
json\u encode($content)
并编写它。这应该适用于您当前的jQuery代码

改变

fwrite($fp,serialize($content));


编写序列化数组是一种糟糕的做法,您必须使用
json\u encode
将数据保存到文件中:

fwrite($fp,json_encode($content));
在ajax中获取数据时,不要使用
JSON.stringify
使用:

JSON.parse(dataString);

将数组保存在html文档中是很奇怪的。客户希望将日志保存在本地文件中-要么是
html
要么是
txt
,而我过去曾将日志保存到
html
,所以这似乎是一个明显的选择。现在要重新考虑了!
JSON.parse(dataString);