1 <?php 2 /** 3 * Copyright 2012-2017 Horde LLC (http://www.horde.org/) 4 * 5 * See the enclosed file LICENSE for license information (LGPL). If you 6 * did not receive this file, see http://www.horde.org/licenses/lgpl21. 7 * 8 * @category Horde 9 * @copyright 2012-2017 Horde LLC 10 * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 11 * @package Imap_Client 12 */ 13 14 /** 15 * Object representation of an IMAP atom (RFC 3501 [4.1]). 16 * 17 * @author Michael Slusarz <slusarz@horde.org> 18 * @category Horde 19 * @copyright 2012-2017 Horde LLC 20 * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 21 * @package Imap_Client 22 */ 23 class Horde_Imap_Client_Data_Format_Atom extends Horde_Imap_Client_Data_Format 24 { 25 /** 26 */ 27 public function escape() 28 { 29 return strlen($this->_data) 30 ? parent::escape() 31 : '""'; 32 } 33 34 /** 35 */ 36 public function verify() 37 { 38 if (strlen($this->_data) !== strlen($this->stripNonAtomCharacters())) { 39 throw new Horde_Imap_Client_Data_Format_Exception('Illegal character in IMAP atom.'); 40 } 41 } 42 43 /** 44 * Strip out any characters that are not allowed in an IMAP atom. 45 * 46 * @return string The atom data disallowed characters removed. 47 */ 48 public function stripNonAtomCharacters() 49 { 50 return str_replace( 51 array('(', ')', '{', ' ', '%', '*', '"', '\\', ']'), 52 '', 53 preg_replace('/[^\x20-\x7e]/', '', $this->_data) 54 ); 55 } 56 57 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body