Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #6230

Re: implode/explode vs serialize/unserialize

Message-ID <2323676.ZLtig6B16M@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2012-05-30 22:34 +0200
Subject Re: implode/explode vs serialize/unserialize
Newsgroups comp.lang.php
References <jq2im6$u4p$1@speranza.aioe.org> <4fc4dae4$0$6908$e4fe514c@news2.news.xs4all.nl> <jq576g$phf$1@speranza.aioe.org>
Followup-To comp.lang.php

Followups directed to: comp.lang.php

Show all headers | View raw


bill wrote:

> On 5/29/2012 10:19 AM, Erwin Moller wrote:
>> On 5/29/2012 3:24 PM, bill wrote:
>>> Would one of the more knowledgeable folk discuss when it is
>>> appropriate
>>> to use implode/explode and when it is appropriate to use
>>> serialize/unserialize.
>>>
>>> It seems that for 1D arrays implode is better in that is only
>>> adds 1
>>> character per array element and serialize adds many.
>>>
>>> For objects, serialze is the only way to go.
>>>
>>> in between ?
>>>
>>> bill
>>
>> That is a vague question without more context.
>> Shooting from the hip I would suggest you use serialize only if
>> you need to store/transport a complex structure.
>> And use implode and explode only when you want to create a string
>> from a simple array (no arrays in arrays), and the other way around.

Utter nonsense.

> Your shot from the hip is exactly what I was looking for - thanks.

No it is not.  The problem with that approach is that implode() is _not_ 
generally reversible with explode(), even in a simple, one-dimensional array 
where all elements are of the same type.

It does not work if the array elements are of different type or are not 
strings (because the values are type-converted to string, and exploding a 
string results in array of string elements), and it does not work if the 
delimiter (say, `,') is part of any array string element, assuming that all 
values are strings already.  And if you knew exactly what was in an array, 
you would not need to implode() it in the first place.

So if you want to preserve a data structure in string form for later 
restore, use serialize() and unserialize(), nothing else.


PointedEars
-- 
Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
  -- from <http://www.vortex-webdesign.com/help/hidesource.htm> (404-comp.)

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

implode/explode vs serialize/unserialize bill <william@TechServSys.com> - 2012-05-29 09:24 -0400
  Re: implode/explode vs serialize/unserialize Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-29 09:53 -0400
  Re: implode/explode vs serialize/unserialize Erwin Moller <erwinmollerusenet@xs4all.nl> - 2012-05-29 16:19 +0200
    Re: implode/explode vs serialize/unserialize Erwin Moller <erwinmollerusenet@xs4all.nl> - 2012-05-29 16:22 +0200
    Re: implode/explode vs serialize/unserialize bill <william@TechServSys.com> - 2012-05-30 09:26 -0400
      Re: implode/explode vs serialize/unserialize Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-30 12:57 -0400
        Re: implode/explode vs serialize/unserialize Scott Johnson <noonehome@chalupasworld.com> - 2012-05-30 13:35 -0700
          Re: implode/explode vs serialize/unserialize Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-30 17:37 -0400
            Re: implode/explode vs serialize/unserialize Scott Johnson <noonehome@chalupasworld.com> - 2012-05-31 16:45 -0700
      Re: implode/explode vs serialize/unserialize Erwin Moller <erwinmollerusenet@xs4all.nl> - 2012-05-30 20:37 +0200
      Re: implode/explode vs serialize/unserialize Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-05-30 22:34 +0200
  Re: implode/explode vs serialize/unserialize Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-05-29 16:07 +0200

csiph-web