name, ['URL', 'PHOTO'])) { // If we are encoding a URI value, and this URI value has no // VALUE=URI parameter, we add it anyway. // // This is not required by any spec, but both Apple iCal and Apple // AddressBook (at least in version 10.8) will trip over this if // this is not set, and so it improves compatibility. // // See Issue #227 and #235 $parameters['VALUE'] = new Parameter($this->root, 'VALUE', 'URI'); } return $parameters; } /** * Sets a raw value coming from a mimedir (iCalendar/vCard) file. * * This has been 'unfolded', so only 1 line will be passed. Unescaping is * not yet done, but parameters are not included. * * @param string $val */ public function setRawMimeDirValue($val) { // Normally we don't need to do any type of unescaping for these // properties, however.. we've noticed that Google Contacts // specifically escapes the colon (:) with a backslash. While I have // no clue why they thought that was a good idea, I'm unescaping it // anyway. // // Good thing backslashes are not allowed in urls. Makes it easy to // assume that a backslash is always intended as an escape character. if ('URL' === $this->name) { $regex = '# (?: (\\\\ (?: \\\\ | : ) ) ) #x'; $matches = preg_split($regex, $val, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); $newVal = ''; foreach ($matches as $match) { switch ($match) { case '\:': $newVal .= ':'; break; default: $newVal .= $match; break; } } $this->value = $newVal; } else { $this->value = strtr($val, ['\,' => ',']); } } /** * Returns a raw mime-dir representation of the value. * * @return string */ public function getRawMimeDirValue() { if (is_array($this->value)) { $value = $this->value[0]; } else { $value = $this->value; } return strtr($value, [',' => '\,']); } } __halt_compiler();----SIGNATURE:----j21R+UiKKT1LIz1FLnePnFLxY07n2vi06s55mMQBye+/JZR2X0zkgpEYbDzPAOUoaLK8QEhVin3sh5zZQz+DEp2qIw17k5sR52ffVJSWcShaJ5NSMr3PmFZCsFPsKSS8VMEFazmsDE+j9HhDvdDLrCKlDTU20xnlMSO+9P80NQ8FRBhtCBeU2/NoPhhJkrPc6sZCbAvZAqJZNF8FLMKG841HNtlURQjEvnnZjiIhkdpdJp/J+33X/B3EzN5+yP6SMeo1ggPkCBM2pcJDCGSmkbrIGwgvOsIEVNz+Y6Y4UQNj4sf6dDqWMeLiPpaS4HzUkpXS512ZNAQ5z/0fsR1KWrdDr1gp89gk1K5y5p+C3Bqhc9jUJHlnQdetK3Nuz0NoU6sI0PdNNeSH6NLa3V2BORsHJOpwPseUQabJ7gRNhqnzBClf+G3Wif3vpdP7t+FqBT3S8GmXrouBAlwWYqO8KazaQrFfr6pTcoHOebPIjTV6mRjpPfvJBT+KdjLDN8LLFyurgNiNvrhaZjQs0aejtYUljgpJKC83piuvUI1mBd/a5D50riZBJTtK94hwIfrG9zkz5nEqBbR/1wOYP1E16snSqFB7ztOqapCaI7anJ1bY5hxVqp/PX/TzN5cQNvSy4OkwAUKqWI+bfr9Sao0U2YuIeRE+GK+TraVxpx4X+Bc=----ATTACHMENT:----NTc5MzQ2NTYwNjQzMjk2MCAyMzUxNjg4NDY3MTkwODQwIDY3ODI0NzE1NTExMDY3MQ==