Example #1
0
 /**
  * Parse message UIDs input
  *
  * @param mixed  $uids    UIDs array or comma-separated list or '*' or '1:*'
  * @param string $mailbox Mailbox name
  * @return array Two elements array with UIDs converted to list and ALL flag
  * @access private
  */
 private function _parse_uids($uids, $mailbox)
 {
     if ($uids === '*' || $uids === '1:*') {
         if (empty($this->search_set)) {
             $uids = '1:*';
             $all = true;
         } else {
             if ($this->search_threads) {
                 $uids = $this->conn->fetchUIDs($mailbox, array_keys($this->search_set['depth']));
             } else {
                 $uids = $this->conn->fetchUIDs($mailbox, $this->search_set);
             }
             // save ID-to-UID mapping in local cache
             if (is_array($uids)) {
                 foreach ($uids as $id => $uid) {
                     $this->uid_id_map[$mailbox][$uid] = $id;
                 }
             }
             $uids = join(',', $uids);
         }
     } else {
         if (is_array($uids)) {
             $uids = join(',', $uids);
         }
         if (preg_match('/[^0-9,]/', $uids)) {
             $uids = '';
         }
     }
     return array($uids, (bool) $all);
 }