[wp-hackers] [GSoC 2011] Moving Wordpress

Piyush Mishra me at piyushmishra.com
Sun Mar 20 19:29:15 UTC 2011


Last year I was discussing this on the mailing list and Otto suggested a
really good way of allowing this.

function maybe_unserialize( $original ) {
       if ( is_serialized( $original ) ) // don't attempt to unserialize
       {
               $fixed = preg_replace_callback(
                       '!(?<=^|;)s:(\d+)(?=:"(.*?)";(
?:}|a:|s:|b:|i:|o:|N;))!s',
                       'serialize_fix_callback',
                       $original );
               return @unserialize( $fixed );
       }
       return $original;
}


On Mon, Mar 21, 2011 at 12:15 AM, Brian Layman
<wp-hackers at thecodecave.com>wrote:

> On 3/20/2011 2:09 PM, ErisDS (Hannah Wolfe) wrote:
>
>> I have a script which does all of the database stuff.
>>
>> http://erisds.co.uk/projects/migrate
>>
>
> Nice script.
>
> I hope you don't mind if I share some thoughts on it:
>
> You are taking some steps to replace the GUID for the posts. However, the
> GUID value, even if it has the old URL in there, really does not need to be
> changed.  In fact it is probably better to just leave it as is.  Your script
> would run faster if you didn't bother to change it. (That said, I've done
> the same thing in earlier migration scripts of my own).
>
> The major issue I see is that you do not unserialize option_value while you
> are updating the options table.  The problem with this is that because
> serialized strings encode the length of each string value, a simple
> replacement will corrupt the entire serialized value.  So if your script is
> run on a blog that has "Welcome to blahblahblah.com" in a text widget and
> you str_replace it with "Welcome to blah.com", the new site will have lost
> all widgets on every sidebar.  This could also be the case for someone
> linking to a privacy policy in theme options. If they type in a full URL
> instead of a relative url, then you lose all of the theme options.
>
> Serialized values are a MAJOR annoyance to anyone who regularly manipulates
> the database directly.  This is a very common issue in migration
> tools/tutorials. Talking about it here spreads the word...
>
> That said, Nice stuff. Thanks for sharing!
>
> Brian Layman
> http://eHermitsInc.com
> Managed WordPress Hosting
>
>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>



-- 
Regards
Piyush Mishra
http://www.piyushmishra.com/
Life's Short, Live it to the maximum


More information about the wp-hackers mailing list