Microweber\Utils\Format::unvar_dump PHP Method

unvar_dump() public method

public unvar_dump ( $str )
    public function unvar_dump($str)
    {
        if (strpos($str, "\n") === false) {
            //Add new lines:
            $regex = array('#(\\[.*?\\]=>)#', '#(string\\(|int\\(|float\\(|array\\(|NULL|object\\(|})#');
            $str = preg_replace($regex, "\n\\1", $str);
            $str = trim($str);
        }
        $regex = array('#^\\040*NULL\\040*$#m', '#^\\s*array\\((.*?)\\)\\s*{\\s*$#m', '#^\\s*string\\((.*?)\\)\\s*(.*?)$#m', '#^\\s*int\\((.*?)\\)\\s*$#m', '#^\\s*float\\((.*?)\\)\\s*$#m', '#^\\s*\\[(\\d+)\\]\\s*=>\\s*$#m', '#\\s*?\\r?\\n\\s*#m');
        $replace = array('N', 'a:\\1:{', 's:\\1:\\2', 'i:\\1', 'd:\\1', 'i:\\1', ';');
        $serialized = preg_replace($regex, $replace, $str);
        $func = create_function('$match', 'return "s:".strlen($match[1]).":\\"".$match[1]."\\"";');
        $serialized = preg_replace_callback('#\\s*\\["(.*?)"\\]\\s*=>#', $func, $serialized);
        $func = create_function('$match', 'return "O:".strlen($match[1]).":\\"".$match[1]."\\":".$match[2].":{";');
        $serialized = preg_replace_callback('#object\\((.*?)\\).*?\\((\\d+)\\)\\s*{\\s*;#', $func, $serialized);
        $serialized = preg_replace(array('#};#', '#{;#'), array('}', '{'), $serialized);
        return unserialize($serialized);
    }