unserialize not working

Hi!

i am trying to unserialize the following string to an array for further proccessing but it fails as no output is shown:

a:3:{s:6:“values”;a:21:{s:4:“Info”;s:0:"";s:5:“Fylke”;s:7:“Borring”;s:7:“Kommune”;s:9:“Porsanger”;s:11:“Postadresse”;s:22:“Borringen helsestasjon”;s:10:“Postnummer”;s:4:“0134”;s:8:“Poststed”;s:7:“Borring”;s:7:“Telefon”;s:11:“12 23 34 45”;s:4:“Faks”;s:11:“34 45 56 67”;s:6:“E-post”;s:0:"";s:10:“Webadresse”;s:0:"";s:11:“Ã…pningstid”;s:36:“Onsdag: 16:00-17:00, ofte til 19:00.”;s:10:“Leder_navn”;s:12:“Ola Nordmann”;s:12:“Leder_tittel”;s:17:“Led. helsesøster”;s:7:“Jordmor”;s:1:“1”;s:12:“Helsesøster”;s:6:“Kvinne”;s:4:“Lege”;s:5:“Ingen”;s:8:“Psykolog”;s:1:“1”;s:8:“Sosionom”;s:1:“1”;s:17:“Barnevernspedagog”;s:1:“1”;s:17:“Andre_profesjoner”;s:3:“Nei”;s:14:“Besøksadresse”;s:36:“Helsestasjonen i Borring inngang bak”;}s:5:“types”;a:21:{s:4:“Info”;s:6:“editor”;s:5:“Fylke”;s:14:“multipleChoice”;s:7:“Kommune”;s:4:“text”;s:11:“Postadresse”;s:4:“text”;s:10:“Postnummer”;s:4:“text”;s:8:“Poststed”;s:4:“text”;s:7:“Telefon”;s:4:“text”;s:4:“Faks”;s:4:“text”;s:6:“E-post”;s:4:“text”;s:10:“Webadresse”;s:4:“text”;s:11:“Ã…pningstid”;s:6:“editor”;s:10:“Leder_navn”;s:4:“text”;s:12:“Leder_tittel”;s:4:“text”;s:7:“Jordmor”;s:14:“multipleChoice”;s:12:“Helsesøster”;s:14:“multipleChoice”;s:4:“Lege”;s:14:“multipleChoice”;s:8:“Psykolog”;s:14:“multipleChoice”;s:8:“Sosionom”;s:14:“multipleChoice”;s:17:“Barnevernspedagog”;s:14:“multipleChoice”;s:17:“Andre_profesjoner”;s:4:“text”;s:14:“Besøksadresse”;s:6:“editor”;}s:8:“varnames”;a:21:{s:4:“Info”;s:4:“info”;s:5:“Fylke”;s:5:“fylke”;s:7:“Kommune”;s:7:“kommune”;s:11:“Postadresse”;s:11:“postadresse”;s:10:“Postnummer”;s:10:“postnummer”;s:8:“Poststed”;s:8:“poststed”;s:7:“Telefon”;s:7:“telefon”;s:4:“Faks”;s:4:“faks”;s:6:“E-post”;s:6:“e-post”;s:10:“Webadresse”;s:10:“webadresse”;s:11:“Ã…pningstid”;s:11:“Ã¥pningstid”;s:10:“Leder_navn”;s:10:“leder_navn”;s:12:“Leder_tittel”;s:12:“leder_tittel”;s:7:“Jordmor”;s:7:“jordmor”;s:12:“Helsesøster”;s:12:“helsesøster”;s:4:“Lege”;s:4:“lege”;s:8:“Psykolog”;s:8:“psykolog”;s:8:“Sosionom”;s:8:“sosionom”;s:17:“Barnevernspedagog”;s:17:“barnevernspedagog”;s:17:“Andre_profesjoner”;s:17:“andre_profesjoner”;s:14:“Besøksadresse”;s:14:“besøksadresse”;}}

my function is as follows:

[php]public function setPhone($row) {
$array = unserialize($row);
print_r($array);
return $row;
}[/php]

The output is just blank. Anyone know what the problem might be? when unserializing using http://blog.tanist.co.uk/files/unserialize/, it works though…

appreciate any help!
Stian.

Seems like an encoding problem, found this when quickly searching for this on SO

[php]<?php
echo ‘

’;
function mb_unserialize($string) {
$string = preg_replace(’!s:(\d+):"(.*?)";!se’, “‘s:’.strlen(’$2’).’:”$2";’", $string);
return unserialize($string);
}

$string = ‘a:3:{s:6:“values”;a:21:{s:4:“Info”;s:0:"";s:5:“Fylke”;s:7:“Borring”;s:7:“Kommune”;s:9:“Porsanger”;s:11:“Postadresse”;s:22:“Borringen helsestasjon”;s:10:“Postnummer”;s:4:“0134”;s:8:“Poststed”;s:7:“Borring”;s:7:“Telefon”;s:11:“12 23 34 45”;s:4:“Faks”;s:11:“34 45 56 67”;s:6:“E-post”;s:0:"";s:10:“Webadresse”;s:0:"";s:11:“Ã…pningstid”;s:36:“Onsdag: 16:00-17:00, ofte til 19:00.”;s:10:“Leder_navn”;s:12:“Ola Nordmann”;s:12:“Leder_tittel”;s:17:“Led. helsesøster”;s:7:“Jordmor”;s:1:“1”;s:12:“Helsesøster”;s:6:“Kvinne”;s:4:“Lege”;s:5:“Ingen”;s:8:“Psykolog”;s:1:“1”;s:8:“Sosionom”;s:1:“1”;s:17:“Barnevernspedagog”;s:1:“1”;s:17:“Andre_profesjoner”;s:3:“Nei”;s:14:“Besøksadresse”;s:36:“Helsestasjonen i Borring inngang bak”;}s:5:“types”;a:21:{s:4:“Info”;s:6:“editor”;s:5:“Fylke”;s:14:“multipleChoice”;s:7:“Kommune”;s:4:“text”;s:11:“Postadresse”;s:4:“text”;s:10:“Postnummer”;s:4:“text”;s:8:“Poststed”;s:4:“text”;s:7:“Telefon”;s:4:“text”;s:4:“Faks”;s:4:“text”;s:6:“E-post”;s:4:“text”;s:10:“Webadresse”;s:4:“text”;s:11:“Ã…pningstid”;s:6:“editor”;s:10:“Leder_navn”;s:4:“text”;s:12:“Leder_tittel”;s:4:“text”;s:7:“Jordmor”;s:14:“multipleChoice”;s:12:“Helsesøster”;s:14:“multipleChoice”;s:4:“Lege”;s:14:“multipleChoice”;s:8:“Psykolog”;s:14:“multipleChoice”;s:8:“Sosionom”;s:14:“multipleChoice”;s:17:“Barnevernspedagog”;s:14:“multipleChoice”;s:17:“Andre_profesjoner”;s:4:“text”;s:14:“Besøksadresse”;s:6:“editor”;}s:8:“varnames”;a:21:{s:4:“Info”;s:4:“info”;s:5:“Fylke”;s:5:“fylke”;s:7:“Kommune”;s:7:“kommune”;s:11:“Postadresse”;s:11:“postadresse”;s:10:“Postnummer”;s:10:“postnummer”;s:8:“Poststed”;s:8:“poststed”;s:7:“Telefon”;s:7:“telefon”;s:4:“Faks”;s:4:“faks”;s:6:“E-post”;s:6:“e-post”;s:10:“Webadresse”;s:10:“webadresse”;s:11:“Ã…pningstid”;s:11:“Ã¥pningstid”;s:10:“Leder_navn”;s:10:“leder_navn”;s:12:“Leder_tittel”;s:12:“leder_tittel”;s:7:“Jordmor”;s:7:“jordmor”;s:12:“Helsesøster”;s:12:“helsesøster”;s:4:“Lege”;s:4:“lege”;s:8:“Psykolog”;s:8:“psykolog”;s:8:“Sosionom”;s:8:“sosionom”;s:17:“Barnevernspedagog”;s:17:“barnevernspedagog”;s:17:“Andre_profesjoner”;s:17:“andre_profesjoner”;s:14:“Besøksadresse”;s:14:“besøksadresse”;}}’;

print_r(mb_unserialize($string));[/php]

Output:

[code]Array
(
[values] => Array
(
[Info] =>
[Fylke] => Borring
[Kommune] => Porsanger
[Postadresse] => Borringen helsestasjon
[Postnummer] => 0134
[Poststed] => Borring
[Telefon] => 12 23 34 45
[Faks] => 34 45 56 67
[E-post] =>
[Webadresse] =>
[Ã…pningstid] => Onsdag: 16:00-17:00, ofte til 19:00.
[Leder_navn] => Ola Nordmann
[Leder_tittel] => Led. helsesøster
[Jordmor] => 1
[Helsesøster] => Kvinne
[Lege] => Ingen
[Psykolog] => 1
[Sosionom] => 1
[Barnevernspedagog] => 1
[Andre_profesjoner] => Nei
[Besøksadresse] => Helsestasjonen i Borring inngang bak
)

[types] => Array
    (
        [Info] => editor
        [Fylke] => multipleChoice
        [Kommune] => text
        ...[/code]

I would suggest moving to JSON, it handles encoding itself and is pretty much the new standard on the web.

thanks you very much, that worked!:slight_smile: im not using json because this is part of a migration from an old database which do not use json unfortunately…

Sponsor our Newsletter | Privacy Policy | Terms of Service