簡體   English   中英

imap_search 不適用於 php 中的多個條件

[英]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_mergearray_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM