public static function convertFromConcatenated($value)
    {
        //normalize remaining backslashes
        if ($value != preg_replace('/(\w)\\\/', "$1", $value)) {
            $value .= preg_replace('/(\w)\\\/', "$1", $value);
        }

        $compare = stripslashes($value);

        $pattern = array(
            '/(?:<\/\w+>\+<\w+>)/s',
            '/(?:":\d+[^"[]+")/s',
            '/(?:"?"\+\w+\+")/s',
            '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s',
            '/(?:"\s*(?:;|\+).{8,18}:\s*")/s',
            '/(?:";\w+=)|(?:!""&&")|(?:~)/s',
            '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s',
            '/(?:"\s*\W+")/s',
            '/(?:";\w\s*\+=\s*\w?\s*")/s',
            '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s',
            '/(?:";\s*\w+\W+\w*\s*[|&]*")/s',
            '/(?:"\s*"\s*\.)/s',
            '/(?:\s*new\s+\w+\s*[+",])/',
            '/(?:(?:^|\s+)(?:do|else)\s+)/',
            '/(?:[{(]\s*new\s+\w+\s*[)}])/',
            '/(?:(this|self)\.)/',
            '/(?:undefined)/',
            '/(?:in\s+)/'
        );

        // strip out concatenations
        $converted = preg_replace($pattern, null, $compare);

        //strip object traversal
        $converted = preg_replace('/\w(\.\w\()/', "$1", $converted);

        // normalize obfuscated method calls
        $converted = preg_replace('/\)\s*\+/', ")", $converted);

        //convert JS special numbers
        $converted = preg_replace(
            '/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims',
            1,
            $converted
        );

        if ($converted && ($compare != $converted)) {
            $value .= "\n" . $converted;
        }

        return $value;
    }
public static function convertFromConcatenated($value)
    {
        //normalize remaining backslashes
        if ($value != preg_replace('/(\w)\\\/', "$1", $value)) {
            $value .= preg_replace('/(\w)\\\/', "$1", $value);
        }

        $compare = stripslashes($value);

        $pattern = array(
            '/(?:<\/\w+>\+<\w+>)/s',
            '/(?:":\d+[^"[]+")/s',
            '/(?:"?"\+\w+\+")/s',
            '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s',
            '/(?:"\s*(?:;|\+).{8,18}:\s*")/s',
            '/(?:";\w+=)|(?:!""&&")|(?:~)/s',
            '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s',
            '/(?:"\s*\W+")/s',
            '/(?:";\w\s*\+=\s*\w?\s*")/s',
            '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s',
            '/(?:";\s*\w+\W+\w*\s*[|&]*")/s',
            '/(?:"\s*"\s*\.)/s',
            '/(?:\s*new\s+\w+\s*[+",])/',
            '/(?:(?:^|\s+)(?:do|else)\s+)/',
            '/(?:[{(]\s*new\s+\w+\s*[)}])/',
            '/(?:(this|self)\.)/',
            '/(?:undefined)/',
            '/(?:in\s+)/'
        );

        // strip out concatenations
        $converted = preg_replace($pattern, null, $compare);

        //strip object traversal
        $converted = preg_replace('/\w(\.\w\()/', "$1", $converted);

        // normalize obfuscated method calls
        $converted = preg_replace('/\)\s*\+/', ")", $converted);

        //convert JS special numbers
        $converted = preg_replace(
            '/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims',
            1,
            $converted
        );

        if ($converted && ($compare != $converted)) {
            $value .= "\n" . $converted;
        }

        return $value;
    }
public static function convertFromConcatenated ( $ value ) { //normalize remaining backslashes if ( $ value != preg_replace ( '/(\w)\\\/' , "$1" , $ value ) ) { $ value .= preg_replace ( '/(\w)\\\/' , "$1" , $ value ) ; } $ compare = stripslashes ( $ value ) ; $ pattern = array ( '/(?:<\/\w+>\+<\w+>)/s' , '/(?:":\d+[^"[]+")/s' , '/(?:"?"\+\w+\+")/s' , '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s' , '/(?:"\s*(?:;|\+).{8,18}:\s*")/s' , '/(?:";\w+=)|(?:!""&&")|(?:~)/s' , '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s' , '/(?:"\s*\W+")/s' , '/(?:";\w\s*\+=\s*\w?\s*")/s' , '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s' , '/(?:";\s*\w+\W+\w*\s*[|&]*")/s' , '/(?:"\s*"\s*\.)/s' , '/(?:\s*new\s+\w+\s*[+",])/' , '/(?:(?:^|\s+)(?:do|else)\s+)/' , '/(?:[{(]\s*new\s+\w+\s*[)}])/' , '/(?:(this|self)\.)/' , '/(?:undefined)/' , '/(?:in\s+)/' ) ; // strip out concatenations $ converted = preg_replace ( $ pattern , null , $ compare ) ; //strip object traversal $ converted = preg_replace ( '/\w(\.\w\()/' , "$1" , $ converted ) ; // normalize obfuscated method calls $ converted = preg_replace ( '/\)\s*\+/' , ")" , $ converted ) ; //convert JS special numbers $ converted = preg_replace ( '/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims' , 1 , $ converted ) ; if ( $ converted && ( $ compare != $ converted ) ) { $ value .= "\n" . $ converted ; } return $ value ; }
Converts basic concatenations

@param string $value the value to convert

@static
@return string
Converts basic concatenations