roundcubemail/program/lib/Roundcube/rcube_utils.php
public static function explode_quoted_string($delimiter, $string)
    {
        $result = array();
        $strlen = strlen($string);

        for ($q=$p=$i=0; $i < $strlen; $i++) {
            if ($string[$i] == "\"" && $string[$i-1] != "\\") {
                $q = $q ? false : true;
            }
            else if (!$q && preg_match("/$delimiter/", $string[$i])) {
                $result[] = substr($string, $p, $i - $p);
                $p = $i + 1;
            }
        }

        $result[] = (string) substr($string, $p);

        return $result;
    }
public static function explode_quoted_string($delimiter, $string)
    {
        $result = array();
        $strlen = strlen($string);

        for ($q=$p=$i=0; $i < $strlen; $i++) {
            if ($string[$i] == "\"" && $string[$i-1] != "\\") {
                $q = $q ? false : true;
            }
            else if (!$q && preg_match("/$delimiter/", $string[$i])) {
                $result[] = substr($string, $p, $i - $p);
                $p = $i + 1;
            }
        }

        $result[] = (string) substr($string, $p);

        return $result;
    }
public static function explode_quoted_string ( $ delimiter , $ string ) { $ result = array ( ) ; $ strlen = strlen ( $ string ) ; for ( $ q = $ p = $ i = 0 ; $ i < $ strlen ; $ i ++ ) { if ( $ string [ $ i ] == "\"" && $ string [ $ i - 1 ] != "\\" ) { $ q = $ q ? false : true ; } else if ( ! $ q && preg_match ( "/$delimiter/" , $ string [ $ i ] ) ) { $ result [ ] = substr ( $ string , $ p , $ i - $ p ) ; $ p = $ i + 1 ; } } $ result [ ] = ( string ) substr ( $ string , $ p ) ; return $ result ; }
Explode quoted string

@param string Delimiter expression string for preg_match()
@param string Input string

@return array String items
Explode quoted string