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);
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM