[英]imap_search not working with multiple criteria in php
我正在用 imap 在 php 中做 webmail 項目。 imap_search 函數不適用於多個條件。 在單一搜索條件中,它工作正常。 這是我的代碼:
$boxes = imap_search($mbox, 'OR SUBJECT "'.$search_keyword.'" BODY "'.$search_keyword.'"', SE_UID);
謝謝你的建議。 我已經用一些基本條件編寫了代碼。 現在它工作正常。 這是我的代碼。
//for multiple search criteria starts here for concatenate
$boxes = imap_search($mbox, 'FROM "'.$search_keyword.'"', SE_UID);
//check if first search have mails or not
if( $boxes )
{
if( imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID) )
{
$boxes = $boxes + imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
}
else
{
$boxes = imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
}
}
我在 Windows 上使用 PHP 5.5.12,我確認“OR”運算符不適用於函數 Imap_search()。 您需要對服務器進行多次查詢才能獲得所需的結果。
值得一提的是,使用關鍵字“BODY”或“TEXT”搜索電子郵件正文也將使用 Imap_search() 匹配位於標題(例如,FROM、TO、SUBJECT)中的內容。
試試這個代碼:
$emails = imap_search($inbox, 'TO "'.$email.'" SUBJECT "'.$search_text.'"',E_UID);
試試這可能是
$SUBJECT = imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
$BODY = imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
$boxes = array_merge($SUBJECT, $BODY);
要使用array_merge
或array_intersect
需要$SUBJECT
和$BODY
到臨時變量
$SUBJECT = imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
$BODY = imap_search($mbox, 'SUBJECT "'.$search_keyword.'"', SE_UID);
$I = $SUBJECT;
$J = $BODY;
$boxes = array_merge($I,$J);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.