How to repair a serialized string which has been corrupted by an incorrect byte count length?

后端 未结 15 2010
后悔当初
后悔当初 2020-11-22 11:46

I am using Hotaru CMS with the Image Upload plugin, I get this error if I try to attach an image to a post, otherwise there is no error:

unserialize()

15条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-22 12:35

    You can fix broken serialize string using following function, with multibyte character handling.

    function repairSerializeString($value)
    {
    
        $regex = '/s:([0-9]+):"(.*?)"/';
    
        return preg_replace_callback(
            $regex, function($match) {
                return "s:".mb_strlen($match[2]).":\"".$match[2]."\""; 
            },
            $value
        );
    }
    

提交回复
热议问题