我通过html
将数据写入PHP
文件,如下所示:
$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;
}
日志文件log_test.html
包含:
a:3:{s:6:"author";s:5:"e297f";s:7:"message";s:4:"test";s:4:"time";s:8:"09:23:23";}a:3:{s:6:"author";s:5:"e297f";s:7:"message";s:4:"test";s:4:"time";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:37:03";}
控制台记录:
"a:3:{s:6:\"author\";s:5:\"e297f\";s:7:\"message\";s:4:\"test\";s:4:\"time\";s:8:\"09:23:23\";}"
答案 0 :(得分:1)
那是因为您提供了serialize($content)
数据并撰写了它。而是尝试json_encode($content)
并写下来。这应该适用于您当前的jQuery代码。
更改
fwrite($fp,serialize($content));
要
fwrite($fp,json_encode($content));
答案 1 :(得分:0)
编写序列化数组是不好的做法,您可以使用json_encode
将数据保存到文件中:
fwrite($fp,json_encode($content));
在获取ajax中的数据时,而不是使用JSON.stringify
使用:
JSON.parse(dataString);