当邮件帐户中没有邮件时,php Imap_search count始终返回1

时间:2017-05-10 05:34:00

标签: php imap gmail-imap

当我的邮件帐户有一些符合搜索条件的邮件时,它会给出正确的计数。但是,每当根据搜索条件没有消息(消息数量为0)时,它也会将计数返回为' 1'这里是我的代码。给我建议..

$imap = imap_open("{mail.amazepixels.com}INBOX", "mail_id", "password")
  or die("can't connect: " . imap_last_error());

$rec = imap_search($imap, 'ON "22 May 2017"');
$rec_count = count($rec);

$ans = imap_search($imap, 'UNANSWERED ON "22 May 2017"');
$ans_count = count($ans);

$seen = imap_search($imap, 'UNSEEN ON "22 May 2017"');
$seen_count = count($seen);

echo $rec_count."-".$ans_count."-".$seen_count;exit;

我刚给出了将来的日期......总是返回计数1

1 个答案:

答案 0 :(得分:2)

如果未找到任何消息且imap_search(),则

false会返回count(false) == 1

您可以通过将其更改为:

来解决此问题
$ans_count = $ans ? count($ans) : 0; 

来自manual

  

如果它不理解搜索条件或没有找到任何消息,则返回FALSE。

这是关于计数问题的帖子:Why count(false) return 1?