def PHP.unserialize(string, classmap = nil, assoc = false)
if classmap == true or classmap == false
assoc = classmap
classmap = {}
end
classmap ||= {}
require 'stringio'
string = StringIO.new(string)
def string.read_until(char)
val = ''
while (c = self.read(1)) != char
val << c
end
val
end
if string.string =~ /^(\w+)\|/
ret = Hash.new
loop do
if string.string[string.pos, 32] =~ /^(\w+)\|/
string.pos += $&.size
ret[$1] = PHP.do_unserialize(string, classmap, assoc)
else
break
end
end
ret
else
PHP.do_unserialize(string, classmap, assoc)
end
end