note 44874 added to function.unserialize
| From: | php-general at lists dot php dot net | Date: | Wed, 18 Aug 2004 17:46:15 +0000 |
| Subject: | note 44874 added to function.unserialize | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-74892@lists.php.net to get a copy of this message | ||
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
----
Manual Page -- http://www.php.net/manual/en/function.unserialize.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+44874
Delete -- http://master.php.net/manage/user-notes.php?action=delete+44874&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+44874&report=yes
Search -- http://master.php.net/manage/user-notes.php