php Imap_search 总计数 returns 1 当邮件帐户中没有邮件时
php Imap_search count always returns 1 when there is no messages in mail account
当我的邮件帐户中有一些符合搜索条件的邮件时,它会给出正确的计数。但是每当根据搜索条件没有消息(0 条消息)时,它也会 returns 计数为“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;
我刚刚给出了未来的日期..它 returns 计数 1
总是..
imap_search()
returns false
如果没有找到消息并且 count(false) == 1
。
您可以通过将其更改为来修复它:
$ans_count = $ans ? count($ans) : 0;
来自manual:
Return FALSE if it does not understand the search criteria or no messages have been found.
这是关于计数问题的 post:Why count(false) return 1?
当我的邮件帐户中有一些符合搜索条件的邮件时,它会给出正确的计数。但是每当根据搜索条件没有消息(0 条消息)时,它也会 returns 计数为“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;
我刚刚给出了未来的日期..它 returns 计数 1
总是..
imap_search()
returns false
如果没有找到消息并且 count(false) == 1
。
您可以通过将其更改为来修复它:
$ans_count = $ans ? count($ans) : 0;
来自manual:
Return FALSE if it does not understand the search criteria or no messages have been found.
这是关于计数问题的 post:Why count(false) return 1?