unserialize

unserialize -- Maakt een PHP waarde van een opgeslagen representatie

Beschrijving

mixed unserialize ( string str [, string callback])

unserialize( ) neemt een enkele geserializeerde variabele (zie serialize( ) ) en converteert het terug naar een PHP waarde . De geconverteerde waarde wordt teruggeven , en kan een integer , float , string , array of een object zijn . Als de meegegeven string niet correct worden ingelezen , zal deze functie FALSE teruggeven .

Opmerking : Het is mogelijk een callback-functie in te stellen die zal worden aangeroepen als een ongedefinieerde class wordt opgeroepen tijdens het unserializen ( om te voorkomen dat je een incompleet object "__PHP_Incomplete_Class " krijgt . ) Gebruik je php.ini , ini_set( ) of .htaccess -bestand of 'unserialize_callback_func ' in te stellen . Elke keer een ongedefinieerde class zou worden opgeroepen , wordt die functie aangeroepen . Om deze optie uit te zetten , moet je deze instelling gewoon leeg laten . Merk op dat de ini-instelling unserialize_callback_function nieuw is sinds PHP 4.2.0 .

Als de variable die wordt geunserialized een object is , zal PHP automatisch proberen de __wakeup( ) functie van die class aan te roepen als deze functie beschikbaar is en het object succesvol kon worden gereconstrueerd .

Voorbeeld 1 . unserialize_callback_func voorbeeld

 
?php

 
$serialized_object='

 
O:1

 
:"a":1

 
:{s:5

 
:"value";s:3

 
:"100"

 
;}'

 
;

 
/

 
/

 
unserialize_callback_func

 
is

 
beschikbaar

 
sinds

 
PHP

 
4.2.0

 
ini_set('unserialize_callback_func'

 
,'mycallback')

 
;

 
/

 
/

 
stel

 
je

 
callback_function

 
in

 
function

 
mycallback($classname

 
)

 
{

 
/

 
/

 
include

 
hier

 
een

 
bestand

 
dat

 
de

 
classdefinitie

 
bevat

 
/

 
/

 
je

 
krijgt

 
$classname

 
om

 
uit

 
te

 
zoeken

 
welke

 
definitie

 
je

 
nodig

 
hebt

 
}

 
?





Opmerking : In PHP 3 , zullen properties van objecten worden geserializeerd , maar methods zullen verloren gaan . PHP 4 kent die limitatie niet , en zal zowel de properties als de methods herstellen . Zie de Serializing Objects sectie van Classes and Objects voor meer informatie .

Voorbeeld 2 . unserialize( ) example

 
?php

 
/

 
/

 
Hier

 
gebruiken

 
we

 
unserialize(

 
)

 
om

 
de

 
sessie

 
data

 
in

 
de

 
/

 
/

 
$session_data

 
array

 
te

 
laden

 
van

 
de

 
string

 
die

 
we

 
uit

 
een

 
database

 
/

 
/

 
halen

 
.




 
Dit

 
voorbeeld

 
maakt

 
het

 
voorbeeld

 
bij

 
serialize(

 
)

 
af

 
.

 
$conn

 
=

 
odbc_connect

 
("webdb"

 
,

 
"php"

 
,

 
"chicken")

 
;

 
$stmt

 
=

 
odbc_prepare

 
($conn

 
,

 
"SELECT

 
data

 
FROM

 
sessions

 
WHERE

 
id

 
=

 
?")

 
;

 
$sqldata

 
=

 
array

 
($PHP_AUTH_USER)

 
;

 
if

 
(!odbc_execute

 
($stmt

 
,

 
$sqldata

 
)

 
|

 
|

 
!odbc_fetch_into

 
($stmt

 
,

 
$tmp)

 
)

 
{

 
/

 
/

 
if

 
the

 
execute

 
or

 
fetch

 
fails

 
,

 
initialize

 
to

 
empty

 
array

 
$session_data

 
=

 
array()

 
;

 
}

 
else

 
{

 
/

 
/

 
we

 
should

 
now

 
have

 
the

 
serialized

 
data

 
in

 
$tmp[0]

 
.

 
$session_data

 
=

 
unserialize

 
($tmp[0])

 
;

 
if

 
(!is_array

 
($session_data)

 
)

 
{

 
/

 
/

 
something

 
went

 
wrong

 
,

 
initialize

 
to

 
empty

 
array

 
$session_data

 
=

 
array()

 
;

 
    }

 
}

 
?





Zie ook : serialize( ) .