JS : Serialize / unserialize

Door Jos , 22 jaar geleden, 5.321x bekeken

Serialize of unserialize objecten tussen JS en PHP.

Voordelen:
- Geen wrapper nodig voor PHP
- Snel (geen eval!)
- Je kan een gedeelte van de scripting naar die clientside verhuizen
- Multi-dimensionaal

Nadelen:
- Kan vervelend gaan doen met rare string waardes (b.v. ""{}"\;")
- Alleen nog maar numerieke arrays (ben een alternatief aan het maken)
- Ondersteunt nu alleen nog de types array, string, integer en boolean

Gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
/*
Unserialize,
    de serialized string zou je op kunnen ophalen m.b.v. AJAX/XHR,
    IFRAME of een echo in PHP
*/

var dataStr = 'a:5... een serialized string van php';
var
dataObj = dataStr.unserialize();

/*
Serialize,
    Deze zou je kunnen versturen met een get of post request (b.v. location.href)
    of met AJAX/XHR
*/

var objStr = serialize([[1,2,3],[4,5,6],[7,8,9]]);
/* Zorg dat alle waardes netjes aankomen */
objStr = encodeURI(objStr);
// ...
//http.open('get', url +'?arguments=' + objStr);

?>


Let wel op dat als je een serialized string naar de server mocht willen
sturen, dat deze even door javascript's "encodeURI" functie moet worden encoded!

Opmerkingen, suggesties en bugreports welkom!

Gesponsorde koppelingen

PHP script bestanden

  1. js-serialize-unserialize

 

Er zijn 10 reacties op 'Js serialize unserialize'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
Gebruik a.u.b geen shorttags dat werkt niet op mijn lokale host

GR. mebus
Jos
Jos
22 jaar geleden
 
0 +1 -0 -1
De shorttags zijn voor de opmaak, en heeft dan ook niks uit te staan met dit script, aangezien het ook Javascript is.
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Als ik het goed zie, doet dit script in Javascript wat de serialize en unserialize doen in PHP, klopt dat?
Jelmer -
Jelmer -
22 jaar geleden
 
0 +1 -0 -1
Leuk, maar ik denk dat JSON toch aantrekkelijker is aangezien dat sinds 5.2 ook native in PHP zit (voor 5.2 hadden we Services_JSON van het PEAR gebeuren) en gewoon via eval() in Javascript geïnterpreteerd kan worden.
Jelmer -
Jelmer -
22 jaar geleden
 
0 +1 -0 -1
Robert, volgens mij gebruik dit inderdaad precies dezelfde syntax als serialize en unserialize in PHP. Je kan dan dus waarden van die tussen elkaar uitwisselen.
Paul K
Paul K
22 jaar geleden
 
0 +1 -0 -1
wat is precies serialize en unserialize
enn wat doet dit script

Sorry voor m'n vragen oor
Jos
Jos
22 jaar geleden
 
0 +1 -0 -1
Neem eens een kijkje op php's serialize
en php's unserialize.

Wat het script doet in het kort:

Gegevens van PHP serialize omzetten naar Javascript en vice versa.


22 jaar geleden
 
0 +1 -0 -1
Als ik het goed begrijp doe je gewoon coderen en decoderen? Dus je kan netzo goed basee64 gebruiken?
Legolas
Legolas
22 jaar geleden
 
0 +1 -0 -1
nee das voor binaire data, dit is om meerdere vars, objecten, arrays, etc te versturen als een string
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Rudie dirkx
rudie dirkx
22 jaar geleden
 
0 +1 -0 -1
base64_encode is voor encoderen van scalar vars. Dit is om een array (niet-scalar) om te schrijven naar scalar (string). Hardly coderen te noemen. Maar wel erg handig. Maar niet perse voor javascript... JSON idd aantrekkelijker

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. js-serialize-unserialize

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.