| | |
| | | |
| | | /* |
| | | +-----------------------------------------------------------------------+ |
| | | | program/include/rcube_vcard.php | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2008-2012, The Roundcube Dev Team | |
| | | | | |
| | |
| | | | Author: Aleksander Machniak <alec@alec.pl> | |
| | | +-----------------------------------------------------------------------+ |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * Logical representation of a vcard-based address record |
| | |
| | | /** |
| | | * Constructor |
| | | */ |
| | | public function __construct($vcard = null, $charset = RCMAIL_CHARSET, $detect = false, $fieldmap = array()) |
| | | public function __construct($vcard = null, $charset = RCUBE_CHARSET, $detect = false, $fieldmap = array()) |
| | | { |
| | | if (!empty($fielmap)) |
| | | $this->extend_fieldmap($fieldmap); |
| | |
| | | * @param string Charset of string values |
| | | * @param boolean True if loading a 'foreign' vcard and extra heuristics for charset detection is required |
| | | */ |
| | | public function load($vcard, $charset = RCMAIL_CHARSET, $detect = false) |
| | | public function load($vcard, $charset = RCUBE_CHARSET, $detect = false) |
| | | { |
| | | self::$values_decoded = false; |
| | | $this->raw = self::vcard_decode($vcard); |
| | |
| | | } |
| | | // vcard has encoded values and charset should be detected |
| | | else if ($detect && self::$values_decoded && |
| | | ($detected_charset = self::detect_encoding(self::vcard_encode($this->raw))) && $detected_charset != RCMAIL_CHARSET) { |
| | | ($detected_charset = self::detect_encoding(self::vcard_encode($this->raw))) && $detected_charset != RCUBE_CHARSET) { |
| | | $this->raw = self::charset_convert($this->raw, $detected_charset); |
| | | } |
| | | |
| | |
| | | if (preg_match('/charset=/i', substr($data, 0, 2048))) |
| | | $charset = null; |
| | | // detect charset and convert to utf-8 |
| | | else if (($charset = self::detect_encoding($data)) && $charset != RCMAIL_CHARSET) { |
| | | else if (($charset = self::detect_encoding($data)) && $charset != RCUBE_CHARSET) { |
| | | $data = rcube_charset::convert($data, $charset); |
| | | $data = preg_replace(array('/^[\xFE\xFF]{2}/', '/^\xEF\xBB\xBF/', '/^\x00+/'), '', $data); // also remove BOM |
| | | $charset = RCMAIL_CHARSET; |
| | | $charset = RCUBE_CHARSET; |
| | | } |
| | | |
| | | $vcard_block = ''; |