/** * 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); }