我正在使用sql server构建一个codeigniter应用。
我使用MySQL启动了该应用程序,并且运行良好,但是当我将表合并到sql服务器时,出现此错误:
消息:unserialize():672字节的偏移量10处出错
文件名:core / MY_Controller.php
行号:3
这是我的controller.php
public function __construct()
{
parent::__construct();
$group_data = array();
if(empty($this->session->userdata('logged_in'))) {
$session_data = array('logged_in' => FALSE);
$this->session->set_userdata($session_data);
}
else {
$user_id = $this->session->userdata('id');
$this->load->model('model_groups');
$group_data = $this->model_groups->getUserGroupByUserId($user_id);
$this->data['user_permission'] = unserialize($group_data['permission']);
$this->permission = unserialize($group_data['permission']);
}
}
答案 0 :(得分:0)
我只是使用了preg_replace_callback函数,对我来说效果很好:
$group_data['permission']=preg_replace_callback('!s:(\d+):"(.*?)";!',
function($match) {
return ($match[1] == strlen($match[2])) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';},
$error_serialized_data);