note 44874 deleted from function.unserialize by tomsommer
| From: | tomsommer@php.net | Date: | Wed, 18 Aug 2004 19:30:32 +0000 |
| Subject: | note 44874 deleted from function.unserialize by tomsommer | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-74905@lists.php.net to get a copy of this message | ||
Note Submitter:
----
This function in javascript convert an array PHP serialized to an array javascript:
function unserialize(str)
{
//document.writeln('<p>0- ' + str + '</p>');
var data = new Array();
var val;
var pos, opened, closed;
var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) );
var str = str.substring(str.indexOf('{')+1, str.lastIndexOf('}'));
for (var i = 0; i < n; i++)
{
//document.writeln('<p>1- ' + str + '</p>');
if (str.charAt(0) == 's')
{
val = parseInt(str.substring(2,str.indexOf(':', 2)));
str = str.substr(str.indexOf(':', 2) + 4 + val);
}
else
if (str.charAt(0) == 'i')
{
str = str.substr(str.indexOf(';') + 1);
}
//document.writeln('<p>2- ' + str + '</p>');
if (str.charAt(0) == 'a')
{
data[i] = new Array();
opened = 1;
closed = 0;
pos = str.indexOf('{');
while (opened != closed)
{
pos += 1;
if (str.charAt(pos) == '}')
{
closed += 1;
}
else
if (str.charAt(pos) == '{')
{
opened += 1;
}
}
data[i] = this.unserialize(str.substring(0,pos+1));
str = str.substr(pos+1);
}
else
if (str.charAt(0) == 's')
{
val = parseInt(str.substring(2,str.indexOf(':', 2)));
data[i] = str.substr(str.indexOf(':',2)+2, val);
str = str.substr(str.indexOf(':',2) + 4 + val);
}
else
if (str.charAt(0) == 'i')
{
data[i] = parseInt(str.substring(2,str.indexOf(';')));
str = str.substr(str.indexOf(';') + 1);
}
else
if (str.charAt(0) == 'd')
{
data[i] = parseFloat(str.substring(2,str.indexOf(';')));
str = str.substr(str.indexOf(';') + 1);
}
//document.writeln('<p>3- ' + data[i] + '</p>');
//document.writeln('<p>4- ' + str + '</p>');
}
return data;
}
[]'s
Jonas Goes
msl@goes.eti.br
http://www.goes.eti.br