unserialize反序列化错误的解决办法

1. UTF-8编码解决反序列化出错问题

function mb_unserialize($serial_str) {
    $serial_str = str_replace("\r", "", $serial_str);
    $serial_str = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
    return unserialize($serial_str);
}

2.ASC编码解决反序列化出错问题 

function asc_unserialize($serial_str) {
 $serial_str= str_replace("\r", "", $serial_str);
 $serial_str = preg_replace('!s:(\d+):"(.*?)";!se', '"s:".strlen("$2").":\"$2\";"', $serial_str );
 return unserialize($serial_str);
}

 

posted @ 2017-08-16 15:38  Tane  阅读(1688)  评论(0编辑  收藏  举报