簡要&代碼
我有存儲在一個.txt
文件中的聊天記錄的內容。內容如下:不能反序列化滿弦
a:3:{s:6:"author";s:5:"e297f";s:7:"message";s:4:"test";s:4:"time";s:8:"14:15:54";}a:3:{s:6:"author";s:5:"e297f";s:7:"message";s:6:"test 2";s:4:"time";s:8:"14:16:55";}a:3:{s:6:"author";s:5:"e297f";s:7:"message";s:6:"test 3";s:4:"time";s:8:"14:17:59";}
一個jQuery函數調用出來chatretrieve.php
一個頁面來收集這些文件的內容。 PHP文件看起來是這樣的:
<?php
session_start();
$data = unserialize(file_get_contents('../sessions/chats/log_'.$_SESSION['chatCode'].'.txt'));
#exit(print_r($data));
$content = '';
for($i = 0; $i < count($data); $i++){
$content.='<div class="msgln">';
$content.='<div class="meta">';
$content.='<span class="name">'.$data[$i]['author'].'</span>';
$content.='<span class="time">'.$data[$i]['time'].'</span>';
$content.='</div>';
$content.='<div class="msg">'.stripslashes(htmlspecialchars($data[$i]['message'])).'</div>';
$content.='</div>';
}
return $content;
jQuery函數的相關部分如下:
$.post('inc/chatretrieve.php').done(function(data) {
console.log(data);
});
問題
當我註釋掉PHP頁面exit(print_r($data))
部分,控制檯返回只有.txt
文件中的第一個數組變量:
Array
(
[author] => e297f
[message] => test
[time] => 14:15:54
)
1
由於.txt
文件中有三條消息(使用file_get_contents()
函數進行檢索),爲什麼我只能在使用unserialize()
函數時看到第一行?