(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 の配列を返します。
検索条件 criteria
を処理できなかった場合や
結果が見つからなかった場合は、false
を返します。
バージョン | 説明 |
---|---|
8.1.0 |
引数 imap は、IMAP\Connection
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース が期待されていました。
|
例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 )