The date format for e.g. SINCE is, according to rfc3501:
date = date-text / DQUOTE date-text DQUOTE
date-day = 1*2DIGIT
; Day of month
date-day-fixed = (SP DIGIT) / 2DIGIT
; Fixed-format version of date-day
date-month = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" /
"Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec"
date-text = date-day "-" date-month "-" date-year
So a valid date is e.g. "22-Jul-2012" with or without the double quotes.
imap_search
(PHP 4, PHP 5)
imap_search — Belirtilen kurala uyan iletileri bir dizi içinde döndürür
Açıklama
$imap_akımı
, string $kural
[, int $seçenekler = SE_FREE
[, string $karküm = NIL
]] )Belirtilen IMAP akımı üzerinde açılmış posta kutusunda bir arama gerçekleştirir.
Örneğin, "annem" tarafından gönderilen yanıtlanmamış tüm iletileri döndürmek için şu kural kullanılır: "UNANSWERED FROM annem". Arama işlemi harf büyüklüğüne duyarsızdır. UW c-client kaynak kodundan okunan kural listesi eksik veya yanlış olabilir (ayrıca bakınız: » RFC2060, bölüm 6.4.4).
Değiştirgeler
-
imap_akımı -
imap_open() işlevinden dönen bir IMAP akımı.
-
kural -
Boşluk ayraçlı bir dizge olup aşağıdaki anahtar sözcüklere izin verilir. Çok sözcüklü değiştirgelerin çift tırnak içine alınması gerekir (örnek: FROM "joey smith").
- ALL - Kuralın kalanı ile eşleşen tüm iletiler döndürülür.
- ANSWERED - \\ANSWERED (yanıtlandı) imli iletiler döndürülür.
- BCC "dizge" - Bcc: başlığında "dizge" bulunan iletiler döndürülür
- BEFORE "tarih" - Date: başlığındaki "tarih" tarihinden önceki iletiler döndürülür.
- BODY "dizge" - İleti gövdesindeki "dizge" ile eşleşen iletiler döndürülür
- CC "dizge" - Cc: başlığında "dizge" bulunan iletiler döndürülür.
- DELETED - silinen iletiler döndürülür.
- FLAGGED - \\FLAGGED imli (bazan Önemli ve Acil diye de nitelenir) iletiler döndürülür.
- FROM "dizge" - From: başlığında "dizge" bulunan iletiler döndürülür.
- KEYWORD "dizge" - Bir anahtar sözcük olarak "ileti" içeren iletiler döndürülür.
- NEW - Yeni iletiler döndürülür.
- OLD - Eski iletiler döndürülür.
- ON "tarih" - Date: başlığında "tarih" bulunan iletiler döndürülür.
- RECENT - \\RECENT (en yeni) imli iletiler döndürülür.
- SEEN - \\SEEN (okundu) imli iletiler döndürülür.
- SINCE "tarih" - Date: başlığında "tarih" tarihinden sonraki tarihli iletiler döndürülür.
- SUBJECT "dizge" - Subject: başlığında "dizge" bulunan iletiler döndürülür.
- TEXT "dizge" - "dizge" metniyle eşleşen iletiler döndürülür.
- TO "dizge" - To: başlığında "dizge" bulunan iletiler döndürülür.
- UNANSWERED - Yanıtlanmamış iletiler döndürülür.
- UNDELETED - Silinmiş iletiler döndürülür.
- UNFLAGGED - İmlenmemiş iletiler döndürülür.
- UNKEYWORD "dizge" - "dizge" anahtar sözcüğünü içermeyen iletiler döndürülür.
- UNSEEN - Henüz okunmamış iletiler döndürülür.
-
seçenekler -
Tek geçerli değer, iletilerin dizi içinde ileti numaralarıyla değil eşsiz kimlikleriyle dönmesini sağlayan
SE_UIDsabitidir. -
karküm -
Karakter kümesi.
Dönen Değerler
İleti numaralarını veya eşsiz kimlikleri içeren bir dizi döner.
kural ile belirtilen arama kuralı anlaşılamazsa
veya kurala uyan hiçbir ileti yoksa FALSE döner.
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 4.3.3 |
karküm değiştirgesi eklendi.
|
I haven't found any documentation of the allowed date formats, but (for example) "14 May 2012" works.
// Find UIDs of messages within the past week
$date = date ( "d M Y", strToTime ( "-7 days" ) );
$uids = imap_search ( $mbox, "SINCE \"$date\"", SE_UID );
imap_search() only supports IMAP2 search criterias, because the function mail_criteria() (from c-client lib) is used in ext/imap/php_imap.c for parsing the search string.
IMAP2 search criteria is defined in RFC 1176, section "tag SEARCH search_criteria".
To set your own CHARSET, which is useful if you are dealing with Chinese Japanese and Korean queries.
<?php imap_search($inbox,'BODY "'.$keyword.'"', SE_FREE, "UTF-8"); ?>
imap_search() always returns false when op_silent flag is set in the connection parameters.
This search looks for messages matching ALL criteria, not ANY criteria. For example the search
imap_search($mailbox,'FROM "user" TO "user"')
Will return message that have "user" in both the from and to headers, but not messages with "user" in either the from or to header.
imap_search() return false if it does not understand the search condition or no messages have been found.
$emails imap_seach($mbox, "UNDELETED SENTSINCE 01-Jan-2002");
if($emails === false)
echo "The search failed";
