Unserializing data doesn't work

前端 未结 3 1208
迷失自我
迷失自我 2021-01-21 13:35

Been at this for the past 5 hours and I\'m stumped. Tried the most ridiculous functions to try and fix it but to no avail.

I\'m retrieving data from a WP database. The

相关标签:
3条回答
  • 2021-01-21 13:46

    You can unserialize twice:

    $unserialized = unserialize( unserialize( $usermeta['facebookmeta'] ) );

    NB: There's no need to serialize when using update_user_meta, it serializes automatically for you, cf. maybe_serialize: http://codex.wordpress.org/Function_Reference/maybe_serialize

    0 讨论(0)
  • 2021-01-21 13:56

    I had the same problem with wp_options where custom post types have serialize data. I've figure that maybe there was a charset issue, and in fact... ta da! Try this:

    $unserialized = unserialize( utf8_encode($atest[0]['option_value'] ) );
    

    Where $atest[0] is thearray from mysql. Hope this helps!

    Aisfrond

    0 讨论(0)
  • 2021-01-21 14:02

    Whoops found the answer! :) WP function hidden in functions.php from WP themselves.

    function maybe_unserialize( $original ) {
        if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
            return @unserialize( $original );
        return $original;
    }
    

    Fixed the unserializing by doing:

    $unserialized = maybe_unserialize( unserialize( $usermeta['facebookmeta'] ));
    

    Returns it all in a neat array! :)

    Happy happy! :)

    0 讨论(0)
提交回复
热议问题