private function extractQuotedPrintableValue()
    {
        // We need to parse the raw line again to get the start of the value.
        //
        // We are basically looking for the first colon (:), but we need to
        // skip over the parameters first, as they may contain one.
        $regex = '/^
            (?: [^:])+ # Anything but a colon
            (?: "[^"]")* # A parameter in double quotes
            : # start of the value we really care about
            (.*)$
        /xs';

        preg_match($regex, $this->rawLine, $matches);

        $value = $matches[1];
        // Removing the first whitespace character from every line. Kind of
        // like unfolding, but we keep the newline.
        $value = str_replace("\n ", "\n", $value);

        // Microsoft products don't always correctly fold lines, they may be
        // missing a whitespace. So if 'forgiving' is turned on, we will take
        // those as well.
        if ($this->options & self::OPTION_FORGIVING) {
            while ('=' === substr($value, -1) && $this->lineBuffer) {
                // Reading the line
                $this->readLine();
                // Grabbing the raw form
                $value .= "\n".$this->rawLine;
            }
        }

        return $value;
    }
private function extractQuotedPrintableValue()
    {
        // We need to parse the raw line again to get the start of the value.
        //
        // We are basically looking for the first colon (:), but we need to
        // skip over the parameters first, as they may contain one.
        $regex = '/^
            (?: [^:])+ # Anything but a colon
            (?: "[^"]")* # A parameter in double quotes
            : # start of the value we really care about
            (.*)$
        /xs';

        preg_match($regex, $this->rawLine, $matches);

        $value = $matches[1];
        // Removing the first whitespace character from every line. Kind of
        // like unfolding, but we keep the newline.
        $value = str_replace("\n ", "\n", $value);

        // Microsoft products don't always correctly fold lines, they may be
        // missing a whitespace. So if 'forgiving' is turned on, we will take
        // those as well.
        if ($this->options & self::OPTION_FORGIVING) {
            while ('=' === substr($value, -1) && $this->lineBuffer) {
                // Reading the line
                $this->readLine();
                // Grabbing the raw form
                $value .= "\n".$this->rawLine;
            }
        }

        return $value;
    }
private function extractQuotedPrintableValue ( ) { // We need to parse the raw line again to get the start of the value. // // We are basically looking for the first colon (:), but we need to // skip over the parameters first, as they may contain one. $ regex = '/^
            (?: [^:])+ # Anything but a colon
            (?: "[^"]")* # A parameter in double quotes
            : # start of the value we really care about
            (.*)$
        /xs' ; preg_match ( $ regex , $ this -> rawLine , $ matches ) ; $ value = $ matches [ 1 ] ; // Removing the first whitespace character from every line. Kind of // like unfolding, but we keep the newline. $ value = str_replace ( "\n " , "\n" , $ value ) ; // Microsoft products don't always correctly fold lines, they may be // missing a whitespace. So if 'forgiving' is turned on, we will take // those as well. if ( $ this -> options & self :: OPTION_FORGIVING ) { while ( '=' === substr ( $ value , - 1 ) && $ this -> lineBuffer ) { // Reading the line $ this -> readLine ( ) ; // Grabbing the raw form $ value .= "\n" . $ this -> rawLine ; } } return $ value ; }
Gets the full quoted printable value.

We need a special method for this, because newlines have both a meaning
in vCards, and in QuotedPrintable.

This method does not do any decoding.

@return string
Gets the full quoted printable value .