我有以下PHP函数:
function readDataFile_array($dataFileName) {
if (file_exists($dataFileName)) {
$readFile = fopen($dataFileName, 'r');
$previousData = fread($readFile, filesize($dataFileName));
fclose($readFile);
$previousData = unserialize($previousData);
} else {
$previousData = null;
}
return $previousData;
}
我收到以下错误:PHP Notice: unserialize(): Error at offset 416687 of 416690 bytes
使用以下方法保存函数要读取的数据:
function writeDataFile_array($dataFileName, $insertData) {
$insertData = serialize($insertData);
$writeFile = fopen($dataFileName, 'w') or die('Unable to open file!');
fwrite($writeFile, $insertData);
fclose($writeFile);
}
我不确定为什么我会收到引用$previousData = unserialize($previousData);
答案 0 :(得分:1)
你正在阅读错误的块大小。
EOF似乎被添加到文件大小。 尝试使用file_get_contents()获取文件,这是读取文件数据的正确方法。
$previousData = file_get_contents($dataFileName);