(PHP 4, PHP 5, PHP 7, PHP 8)
imap_search — Получить сообщения, удовлетворяющие заданным критериям
$imap
,$criteria
,$flags
= SE_FREE
,$charset
= ""Эта функция производит поиск в текущем почтовом ящике открытом в потоке IMAP.
К примеру, чтобы найти все неотвеченные сообщения посланные от мамы (Mom), нужно будет использовать "UNANSWERED FROM mom". Поиск регистронезависимый. Приведённый список критериев извлечён из исходных кодов UW c-client и может быть неполным или не совсем точным (дополнительно смотрите » RFC1176, секция "tag SEARCH search_criteria").
imap
Экземпляр IMAP\Connection.
criteria
Строка, разделённая пробелами, в которой допустимо использовать следующие
ключевые слова. Любые аргументы, состоящие из нескольких слов, должны
быть заключены в двойные кавычки (например
FROM "joey smith"
). Результат будет совпадать со всеми
заданными в параметре criteria
критериями.
flags
Корректные значения flags
- это
SE_UID
, что приведёт к тому, что в возвращённом
массиве вместо номеров сообщений будут содержаться их UID.
charset
Кодировка MIME, в которой будет происходить поиск.
Возвращает номера сообщений или их UID.
Возвращает false
, если сообщения не найдены, либо критерии указанные
в criteria
некорректны.
Версия | Описание |
---|---|
8.1.0 |
Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap .
|
Пример #1 Пример использования imap_search()
<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);
$some = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids = imap_search($imap, 'ALL', SE_UID);
print_r($some);
print_r($msgnos);
print_r($uids);
?>
Результатом выполнения данного примера будет что-то подобное:
Array ( [0] => 4 [1] => 6 [2] => 11 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) Array ( [0] => 1 [1] => 4 [2] => 6 [3] => 8 [4] => 11 [5] => 12 )