# File lib/php_serialize.rb, line 180
        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+)\|/ # session_name|serialized_data
                        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