序列化字符串,unserialize() 反序列化文件,只会读取位居第一位
// 更新创建主题数据
$topic = [
'/KHBS/'.$equipment_number.'/event/sensorAlarm',//报警上报主题
'/KHBS/'.$equipment_number.'/event/powerOff',//断电上报主题
'/KHBS/'.$equipment_number.'/properties/report', //设备状态上报
];
// $file = env('path.document_root').'data/topic.php';
$file = '/home/wwwroot/xxx/data/topic.php';
if (!file_exists($file)) { //$dir 为对应的文件目录
touch($file);
}
if(is_writable($file)) {
$handle=fopen($file,'r');
$cacheArray=unserialize(fread($handle,filesize($file))); //文件内容为空时,反序列化 失败,应先 序列化一个初始值存入文件中
$cacheArray[$id] = $topic;
//读出缓存
$handle=fopen($file,'w+');
fwrite($handle, serialize($cacheArray));
fclose($handle);
}
// 更新设备,session ,重新存入
$_SESSION = array();//销毁且清空session