2012-09-07 42 views

回答

2

不,它不可能

PHP使用引擎蓋下的馬克·克里斯賓的C-客戶端庫做了IMAP的工作。在c-client庫中,mail.c中有一個不推薦使用的方法mail_criteria,它將IMAP搜索字符串轉換爲c-client搜索程序。 mail_criteria在過去8年左右已被棄用,因此從未更新過以支持IMAP4搜索語法。因此,像IMAP2中不存在的搜索字詞從未在mail_criteria函數中獲得支持。以下是它以O開頭的所有術語:

case 'O':     /* possible OLD, ON */ 
    if (!strcmp (criterion+1,"LD")) f = pgm->old = T; 
    else if (!strcmp (criterion+1,"N")) 
     f = mail_criteria_date (&pgm->on,&r); 
    break; 

OR不在該列表中。因此,即使c-client在其SEARCHPGM結構中支持OR,它也不會在已棄用的mail_criteria函數中解析OR。

而PHP仍然使用mail_criteria來解析搜索查詢。因此,直到c客戶端程序庫不否認mail_criteria並使其符合IMAP4或PHP編寫自己的IMAP搜索分析程序,您將被任何IMAP2支持。其中不包括OR。

imap_search不會與多個標準一起使用

+0

還有其他方法嗎? – Red

+0

使用循環。搜索他們並把結果放在數組 – shail

+0

我猜對了,但是表演呢? – Red