Example #1
0
 /**
  * Parses a string data URI into an instance of a DataUri object.
  *
  * @param string  $dataUriString Data URI to be parsed
  * @param DataUri $out           Output DataUri of the method
  *
  * @return bool <code>true</code> if successful, else <code>false</code>
  */
 public static function tryParse($dataUriString, &$out)
 {
     $hasOutput = false;
     if (self::isParsable($dataUriString)) {
         $matches = null;
         if (preg_match_all(self::$REGEX_URI, $dataUriString, $matches, PREG_SET_ORDER) !== false) {
             $mediatype = isset($matches[0][1]) ? $matches[0][1] : self::DEFAULT_TYPE;
             $matchedEncoding = isset($matches[0][2]) ? $matches[0][2] : '';
             $encoding = strtolower($matchedEncoding) === self::BASE64_KEYWORD ? self::ENCODING_BASE64 : self::ENCODING_URL_ENCODED_OCTETS;
             $data = isset($matches[0][3]) ? $matches[0][3] : '';
             $dataUri = new self();
             $dataUri->setMediaType($mediatype);
             $dataUri->setEncodedData($encoding, $data);
             $out = $dataUri;
             $hasOutput = true;
         }
     }
     return $hasOutput;
 }